Crea il tuo primo stacked ensemble

Metodi Ensemble in Python

Román de las Heras

Data Scientist, Appodeal

Stacking di modelli con scikit-learn

Alcune caratteristiche dello stacking in scikit-learn:

  1. scikit-learn offre stimatori di stacking (dalla versione 0.22)
  2. Compatibile con altri stimatori scikit-learn
  3. Il meta-stimatore finale è addestrato con cross-validation
Metodi Ensemble in Python

Passi generali

Passi dell'architettura di stacking

Passi generali di implementazione:

  1. Prepara il dataset
  2. Crea gli stimatori del 1º livello
  3. Aggiungi le previsioni al dataset
  4. Crea il meta-stimatore del 2º livello
  5. Usa lo stacked ensemble per predire
Metodi Ensemble in Python

Stacking classifier

from sklearn.ensemble import StackingClassifier
# Istanzia i classificatori di 1º livello
classifiers = [
    ('clf1', Classifier1(params1)),
    ('clf2', Classifier2(params2)),
    ...
    ('clfN', ClassifierN(paramsN))
]
# Istanzia il classificatore di 2º livello
clf_meta = ClassifierMeta(paramsMeta)
# Crea lo Stacking classifier
clf_stack = StackingClassifier(
   estimators=classifiers,
   final_estimator=clf_meta,
   cv=5,
   stack_method='predict_proba',
   passthrough=False)
# Usa i metodi fit e predict
clf_stack.fit(X_train, y_train)
pred = clf_stack.predict(X_test)
Metodi Ensemble in Python

Stacking regressor

from sklearn.ensemble import StackingRegressor
# Istanzia i regressori di 1º livello
regressors = [
    ('reg1', Regressor1(params1)),
    ('reg2', Regressor2(params2)),
    ...
    ('regN', RegressorN(paramsN))    
]
# Istanzia il regressore di 2º livello
reg_meta = RegressorMeta(paramsMeta)
# Crea lo Stacking regressor
reg_stack = StackingRegressor(
   estimators=regressors,
   final_estimator=reg_meta,
   cv=5,
   passthrough=False)
# Usa i metodi fit e predict
reg_stack.fit(X_train, y_train)
pred = reg_stack.predict(X_test)
Metodi Ensemble in Python

Tocca a te!

Metodi Ensemble in Python

Preparing Video For Download...