通过mlxtend包中的StackingCVClassifier将参数传递给基础分类器的fit方法

时间:2018-09-13 07:29:43

标签: python mlxtend

我在Python中使用StackingCVClassifier(来自mlxtend包),我的分类器之一是XGBoostClassifier实例,我试图传递参数(early_stopping_rounds或简单地传递详细信息)通过StackingCVClassifier对象的fit方法更改为其fit方法。 fit方法似乎不支持此功能。 fit_transform方法具有fit_params参数。但是,当我传递参数(例如**{'XGB_clf__early_stopping_rounds': 20})时,它将引发以下错误:

  

fit()收到了意外的关键字参数'XGB_clf__early_stopping_rounds。

不支持此功能吗?还是我错过了什么?

这是我要做的事的草图:

XGB_clf = XGBClassifier()
other_clf = LogisticRegression()
stacked_clf = StackingCVClassifier(classifiers = [XGB_clf, other_clf], meta_classifier = LogisticRegression(), cv=2)
# trying to pass early_stopping_rounds to XGB_clf.fit
stacked_clf.fit(X_train, y_train, **{XGB_clf__early_stopping_rounds = 50})

1 个答案:

答案 0 :(得分:0)

mlxtend的开发人员表示(截至下面的链接),截至2018年9月,这还不可能。

https://github.com/rasbt/mlxtend/issues/434