Release history

Version 0.3


  • All techniques are now sklearn estimators and passes the check_estimator tests.
  • All techniques can now be instantiated without a trained pool of classifiers.
  • Pool of classifiers can now be fitted together with the ensemble techniques. See simple example.
  • Added support for Faiss (Facebook AI Similarity Search) for fast region of competence estimation on GPU.
  • Added DES Multi-class Imbalance method deslib.des.des_mi.DESMI.
  • Added stacked classifier model, deslib.static.stacked.StackedClassifier to the static ensemble module.
  • Added a new Instance Hardness measure utils.instance_hardness.kdn_score().
  • Added Instance Hardness support when using DES-Clustering.
  • Added label encoder for the static module.
  • Added a script utils.datasets with routines to generate synthetic datasets (e.g., the P2 and XOR datasets).
  • Changed name of base classes (Adding Base to their following scikit-learn standards).
  • Removal of DFP_mask, neighbors and distances as class variables.
  • Changed signature of methods estimate_competence, predict_with_ds, predict_proba_with_ds. They now require the neighbors and distances to be passed as input arguments.
  • Added random_state parameter to all methods in order to have reproducible results.
  • Added Python 3.7 support.
  • New and updated examples.
  • Added performance tests comparing the speed of Faiss vs sklearn KNN.

Bug Fixes

  • Fixed bug with META-DES when checking if the meta-classifier was already fitted.
  • Fixed bug with random state on DCS techniques.
  • Fixed high memory consumption on DES probabilistic methods.
  • Fixed bug on Heterogeneous ensembles example and notebooks examples.
  • Fixed bug on deslib.des.probabilistic.MinimumDifference when only samples from a single class are provided.
  • Fixed problem with DS methods when the number of training examples was lower than the k value.
  • Fixed division by zero problems with APosteriori APriori MLA when the distance is equal to zero.
  • Fixed bug on deslib.utils.prob_functions.exponential_func() when the support obtained for the correct class was equal to one.

Version 0.2


  • Implemented Label Encoding: labels are no longer required to be integers starting from 0. Categorical (strings) and non-sequential integers are supported (similarly to scikit-learn).
  • Batch processing: Vectorized implementation of predictions. Large speed-up in computation time (100x faster in some cases).
  • Predict proba: only required (in the base estimators) if using methods that rely on probabilities (or if requesting probabilities from the ensemble).
  • Improved documentation: Included additional examples, a step-by-step tutorial on how to use the library.
  • New integration tests: Now covering predict_proba, IH and DFP.
  • Bug fixes on 1) predict_proba 2) KNOP with DFP.

Version 0.1


Implemented methods:

  • DES techniques currently available are:
    1. META-DES
    2. K-Nearest-Oracle-Eliminate (KNORA-E)
    3. K-Nearest-Oracle-Union (KNORA-U)
    4. Dynamic Ensemble Selection-Performance(DES-P)
    5. K-Nearest-Output Profiles (KNOP)
    6. Randomized Reference Classifier (DES-RRC)
    7. DES Kullback-Leibler Divergence (DES-KL)
    8. DES-Exponential
    9. DES-Logarithmic
    10. DES-Minimum Difference
    11. DES-Clustering
    12. DES-KNN
  • DCS techniques:
    1. Modified Classifier Rank (Rank)
    2. Overall Locall Accuracy (OLA)
    3. Local Class Accuracy (LCA)
    4. Modified Local Accuracy (MLA)
    5. Multiple Classifier Behaviour (MCB)
    6. A Priori Selection (A Priori)
    7. A Posteriori Selection (A Posteriori)
  • Baseline methods:
    1. Oracle
    2. Single Best
    3. Static Selection
  • Dynamic Frienemy Prunning (DFP)
  • Diversity measures
  • Aggregation functions