首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在中使用RFE?

如何在中使用RFE?
EN

Stack Overflow用户
提问于 2021-02-22 09:30:07
回答 1查看 586关注 0票数 7

我目前使用的是xgb.train(...),它返回一个助推器,但我想使用RFE来选择最佳的100个特性。返回的助推器不能在RFE中使用,因为它不是sklearn估计器。XGBClassifier是xgboost库中的sklearn api,然而,我无法获得与xgb.train(...)方法相同的结果(roc-auc方法差10%)。我已经尝试过sklearn的助推器,但他们也不能得到类似的结果。我还尝试将xgb.train(...)方法包装在一个类中,以添加sklearn估计器方法,但要更改的方法太多了。有没有什么方法可以把xgb.train(...)和sklearn的RFE一起使用呢?

EN

回答 1

Stack Overflow用户

发布于 2021-05-20 16:08:24

针对这类问题,我创建了shap-hypetune:一个python包,用于同时进行超参数调优和梯度提升模型的特性选择

在您的示例中,这使您能够以一种非常简单直观的方式使用XGBClassifier执行RFE

代码语言:javascript
复制
from shaphypetune import BoostRFE

model = BoostRFE(XGBClassifier(), min_features_to_select=1, step=1)
model.fit(X_train, y_train, eval_set=[(X_valid, y_valid)], early_stopping_rounds=6, verbose=0)

pred = model.predict(X_test)

如您所见,您可以使用标准XGB中提供的所有拟合选项(如early_stopping_rounds或自定义指标)来定制训练过程。

还可以使用shap-hypetune来计算参数调整(也可以与特征选择同时进行),或者使用RFEBoruta使用SHAP feature importance来计算特征选择。完整示例可用here

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66308956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档