【发布时间】:2021-05-23 02:49:40
【问题描述】:
我有一个包含一些功能的数据框,我想使用 RFECV 选择重要的数据框。但是,当我尝试像这样将 xgboost 的 fit 参数发送到 RFECV 的 fit 方法时:
# initialising xgboost
xgb_rfe = XGBClassifier(objective='multi:softmax', num_class=3, use_label_encoder=False,
random_state=100, n_estimators=10_000, n_jobs=-1)
# initialising RFECV
rfe = RFECV(estimator=xgb_rfe, min_features_to_select=2, verbose=2, n_jobs=2, cv=3, scoring=log_loss_rfe)
# fitting it
rfe.fit(X=X_train, y=y_train, estimator__early_stopping_rounds=3_000)
我得到TypeError 是这样的:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-17-a1b4fc8b7d71> in <module>()
1 rfe = RFECV(estimator=xgb_rfe, min_features_to_select=2, verbose=2, n_jobs=2, cv=3, scoring=log_loss_rfe)
----> 2 rfe.fit(X=X_train, y=y_train, early_stopping_rounds=3_000)
TypeError: fit() got an unexpected keyword argument 'estimator__early_stopping_rounds'
并且在初始化期间将early_stopping_rounds 直接传递给XGBClassifier 不起作用。
如何在拟合期间将估算器的参数传递给 RFECV?
【问题讨论】:
标签: python machine-learning scikit-learn xgboost rfe