建立你的第一個堆疊式集成

Python 的 Ensemble 方法

Román de las Heras

Data Scientist, Appodeal

用 scikit-learn 進行 Stacking

scikit-learn 堆疊實作的重點:

  1. scikit-learn 提供 stacking 估計器(自 0.22 版起)
  2. 可與其他 scikit-learn 估計器相容
  3. 最終估計器透過交叉驗證訓練
Python 的 Ensemble 方法

一般步驟

堆疊架構步驟示意

一般實作步驟:

  1. 準備資料集
  2. 建立第一層估計器
  3. 將預測加入資料集
  4. 建立第二層中介估計器
  5. 使用堆疊集成進行預測
Python 的 Ensemble 方法

Stacking 分類器

from sklearn.ensemble import StackingClassifier
# 建立第一層分類器
classifiers = [
    ('clf1', Classifier1(params1)),
    ('clf2', Classifier2(params2)),
    ...
    ('clfN', ClassifierN(paramsN))
]
# 建立第二層分類器
clf_meta = ClassifierMeta(paramsMeta)
# 建立 Stacking 分類器
clf_stack = StackingClassifier(
   estimators=classifiers,
   final_estimator=clf_meta,
   cv=5,
   stack_method='predict_proba',
   passthrough=False)
# 使用 fit 與 predict 方法
clf_stack.fit(X_train, y_train)
pred = clf_stack.predict(X_test)
Python 的 Ensemble 方法

Stacking 迴歸器

from sklearn.ensemble import StackingRegressor
# 建立第一層迴歸器
regressors = [
    ('reg1', Regressor1(params1)),
    ('reg2', Regressor2(params2)),
    ...
    ('regN', RegressorN(paramsN))    
]
# 建立第二層迴歸器
reg_meta = RegressorMeta(paramsMeta)
# 建立 Stacking 迴歸器
reg_stack = StackingRegressor(
   estimators=regressors,
   final_estimator=reg_meta,
   cv=5,
   passthrough=False)
# 使用 fit 與 predict 方法
reg_stack.fit(X_train, y_train)
pred = reg_stack.predict(X_test)
Python 的 Ensemble 方法

換你上場!

Python 的 Ensemble 方法

Preparing Video For Download...