让我们用 mlxtend!

Python 中的集成方法

Román de las Heras

Data Scientist, Appodeal

Mlxtend

mlxtend-logo

  • 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)
# 构建堆叠分类器
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)
# 构建堆叠回归器
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...