mlxtend を使おう

Pythonで学ぶアンサンブル手法

Román de las Heras

Data Scientist, Appodeal

Mlxtend

mlxtend のロゴ

  • Machine Learning Extensions
  • データサイエンス向けのユーティリティとツール:
    • 特徴選択
    • アンサンブル手法
    • 可視化
    • モデル評価
  • 直感的で使いやすい API
  • scikit-learn 推定器と互換
1 Raschka, Sebastian (2018) MLxtend: Providing machine learning and data science utilities and extensions to Python's scientific computing stack: https://rasbt.github.io/mlxtend/
Pythonで学ぶアンサンブル手法

mlxtend のスタッキング実装

スタッキング分類の概要

特長:

  • 各推定器は全特徴量で学習
  • メタ推定器は「予測のみ」をメタ特徴量として学習
  • メタ推定器は目的にラベルまたは確率を使用可能
Pythonで学ぶアンサンブル手法

mlxtend の StackingClassifier

from mlxtend.classifier 
    import StackingClassifier
# 第1層の分類器を作成
clf1 = Classifier1(params1)
clf2 = Classifier2(params2)
...
clfN = ClassifierN(paramsN)
# 第2層の分類器を作成
clf_meta = ClassifierMeta(paramsMeta)
# Stacking 分類器を構築
clf_stack = StackingClassifier(
   classifiers=[clf1, clf2, ... clfN],
   meta_classifier=clf_meta,
   use_probas=False,
   use_features_in_secondary=False)
# scikit-learn と同様に fit / predict を使用
clf_stack.fit(X_train, y_train)
pred = clf_stack.predict(X_test)
Pythonで学ぶアンサンブル手法

mlxtend の StackingRegressor

from mlxtend.regressor 
    import StackingRegressor
# 第1層の回帰器を作成
reg1 = Regressor1(params1)
reg2 = Regressor2(params2)
...
regN = RegressorN(paramsN)
# 第2層の回帰器を作成
reg_meta = RegressorMeta(paramsMeta)
# Stacking 回帰器を構築
reg_stack = StackingRegressor(
   regressors=[reg1, reg2, ... regN],
   meta_regressor=reg_meta,
   use_features_in_secondary=False)
# scikit-learn と同様に fit / predict を使用
reg_stack.fit(X_train, y_train)
pred = reg_stack.predict(X_test)
Pythonで学ぶアンサンブル手法

mlxtend を使おう

Pythonで学ぶアンサンブル手法

Preparing Video For Download...