Classify / Predict: ensemble of classifiers / predictors

c1 = Classify[X -> Y, Method -> "LogisticRegression"]
c2 = Classify[X -> Y, Method -> "NearestNeighbors"]

c = MachineLearning`PackageScope`CombinePredictors[{c1, c2}]

ClassifierInformation[c]

enter image description here

p1 = Predict[X -> Y, Method -> "LinearRegression"]
p2 = Predict[X -> Y, Method -> "NearestNeighbors"]

p = MachineLearning`PackageScope`CombinePredictors[{p1, p2}]

PredictorInformation[p]

enter image description here


The question formulation asks for access to the internals of Classify in order to get the ensembles, but there is way to make ensembles of classifiers (i.e. ClassifierFunction[___] functions) through the argument "Probabilities" -- see the (short) package ClassifierEnsembles.m.

Very detailed explanations for using and evaluating classifier ensembles made with that package are given in:

  • ROC for classifier ensembles, bootstrapping, damaging, and interpolation (at community.wolfram.com), or

  • the same article at WordPress (loads faster).

Here is an image of ROC curves for comparing the performance of a classifier ensemble with its individual classifiers: