Wolpert is a scikit-learn compatible framework for easily building stacked ensembles. It supports:
- Different stacking strategies
- Multi-layer models
- Different weights for each transformer
- Easy to make it distributed
The easiest way to install is using pip. Just run pip install wolpert
and you're ready to go.
First we need the layers of our model. The simplest way is using the helper function make_stack_layer:
from sklearn.ensemble import RandomForestClassifier from sklearn.svm import SVC from sklearn.neighbors import KNeighborsClassifier from sklearn.linear_model import LogisticRegression from wolpert import make_stack_layer, StackingPipeline layer0 = make_stack_layer(SVC(), KNeighborsClassifier(), RandomForestClassifier(), blending_wrapper='holdout') clf = StackingPipeline([('l0', layer0), ('l1', LogisticRegression())])
And that's it! And StackingPipeline
inherits a scikit learn class: the Pipeline, so it works just the same:
clf.fit(Xtrain, ytrain) ypreds = clf.predict_proba(Xtest)
This is just the basic example, but there are several ways of building a stacked ensemble with this framework. Make sure to check the User Guide to know more.