Wolpert, a stacked generalization framework
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.
Building a simple model
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.