Python3中StackingClassifier的estimators参数报错应如何处理?
错误原因分析
参数不匹配问题
- 该报错本质是你调用的
StackingClassifier类的初始化参数和你传入的参数名不匹配,有两种常见触发场景:- 导入的是
mlxtend.classifier库下的StackingClassifier,该实现的基学习器参数名为classifiers而非estimators,最终模型参数名为meta_classifier而非final_estimator,参数名不对应就会抛出该异常 - 导入的是scikit-learn库下的
StackingClassifier,但scikit-learn版本低于0.22,官方StackingClassifier是0.22版本才正式加入稳定API的,旧版本的实验性实现参数命名和当前标准不同
- 导入的是
对应解决方法
场景1:使用mlxtend的StackingClassifier
直接修改参数名即可,修改后的代码如下:
StackingClassifier(classifiers=base_learners, meta_classifier=LogisticRegression())
场景2:使用scikit-learn官方的StackingClassifier
首先升级scikit-learn到0.22及以上版本,执行命令:
pip install --upgrade scikit-learn
升级完成后从正确路径导入类,你的原有代码即可正常运行:
from sklearn.ensemble import StackingClassifier from sklearn.linear_model import LogisticRegression StackingClassifier(estimators=base_learners, final_estimator=LogisticRegression())
内容的提问来源于stack exchange,提问作者Eyinlojuoluwa
相关产品推荐
相关产品推荐

