ELECTRE-Tree

  1. Draft: https://arxiv.org/abs/2007.10047
  2. Article: https://www.emerald.com/insight/content/doi/10.1108/DTA-10-2020-0256/full/html
  3. Try it in Colab: ( Colab Demo )

ELECTRE-Tree Algorithm to infer the ELECTRE Tri-B method parameters. The function returns: 1) A list of optimized sub-models that can be used to vote the allocation of alternatives (assign to a class) or can infer the ELECTRE Tri-B parameters using the average.


"tree_electre_tri_b" arguments

  • dataset = A numpy array where the rows are the alternatives and columns are the criteria.

  • target_assignment = Optional argument. A list of previous allocation (labels) of alternatives that the algorithm will try to follow (classification problem). The default value is [].

  • W = Optional argument. A list of weights for each criterion indicated by the decision maker. The default value is [], meaning that the algorithm will try to optimize this parameter.

  • Q = Optional argument. The indifference threshold list indicated by the decision maker. The default value is [], meaning that the algorithm will try to optimize this parameter.

  • P = Optional argument. The preference threshold list indicated by the decision maker. The default value is [], meaning that the algorithm will try to optimize this parameter.

  • V = Optional argument. The veto threshold list indicated by the decision maker. The default value is [], meaning that the algorithm will try to optimize this parameter.

  • cut_level = Optional argument. The list of possibles cut level values indicated by the decision maker. The default value is [0.5, 1.0], meaning that the algorithm will try to optimize this parameter with a value from 0.5 to 1.

  • rule = Decides if the allocation rule is pessimist 'pc' or optimist 'oc'. The default values is 'pc'.

  • number_of_classes = An integer that indicate the total number of classes of the problem. The default value is 2.

  • elite = The quantity of best indivduals to be preserved in the genetic algorithm. The quantity should be low to avoid being traped in local otima. The default value is 1.

  • mutation_rate = Chance to occur a mutation operation in the genetic algorithm. The default value is 0.01

  • eta = Value of the mutation operator used in the genetic algorithm. The default value is 1.

  • mu = Value of the breed operator used in the genetic algorithm. The default value is 2.

  • population_size = The population size used in the genetic algorithm. The default value is 15.

  • generations = The total number of iterations used in the genetic algorithm. The default value is 150.

  • samples = The percentage of the number of alternatives (randomly selected) used in each submodel. The default value is 0.10.

  • number_of_models = The total number of generated sub-models. The defaul value is 100.


"predict" arguments

  • models = A list of optimized sub-models generated by the "tree_electre_tri_b" function.

  • dataset = A numpy array where the rows are the alternatives and columns are the criteria.

  • verbose = Prints the prediction for each alternative. The default value is True.

  • rule = Decides if the allocation rule is pessimist 'pc' or optimist 'oc'. The default values is 'pc'.


"metrics" arguments. Returns the inferred parameters.

  • models = A list of optimized sub-models generated by the "tree_electre_tri_b" function.

  • number_of_classes = An integer that indicate the total number of classes of the problem. The default value is 2.


"plot_decision_boundaries" arguments

  • data = A numpy array where the rows are the alternatives and columns are the criteria.

  • models = A list of optimized sub-models generated by the "tree_electre_tri_b" function.

Other MCDA Methods:

  • pyDecision - A library for many MCDA methods
  • pyMissingAHP - A Method to Infer AHP Missing Pairwise Comparisons
  • 3MOAHP - Inconsistency Reduction Technique for AHP and Fuzzy-AHP Methods
  • Ranking-Trees - Algorithm to infer the ELECTRE II, III, IV and PROMETHEE I, II, III, IV method parameters