gpt4 book ai didi

python - 如何将 RFE 与 xgboost Booster 一起使用?

转载 作者:行者123 更新时间:2023-12-04 11:32:03 28 4
gpt4 key购买 nike

我目前正在使用 xgb.train(...)它返回一个助推器,但我想使用 RFE 来选择最好的 100 个功能。返回的 booster 不能在 RFE 中使用,因为它不是 sklearn 估计器。 XGBClassifier 是 xgboost 库中的 sklearn api,但是,我无法获得与 xgb.train(...) 相同的结果方法(在 roc-auc 上差 10%)。我已经尝试过 sklearn 助推器,但它们也无法获得类似的结果。我也试过包装 xgb.train(...)类中的方法来添加 sklearn estimator 方法,但是要更改的方法太多了。有什么方法可以使用 xgb.train(...)以及来自 sklearn 的 RFE?

最佳答案

针对这类问题,我创建了shap-hypetune :用于同时进行超参数调整和梯度提升模型特征选择的 Python 包
在您的情况下,这使您能够执行 RFEXGBClassifier以一种非常简单直观的方式:

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 API 中可用的所有拟合选项,例如 early_stopping_rounds或自定义指标,以自定义培训过程。
您可以使用 shap-hypetune 还可以计算参数调整(也与特征选择同时进行)或使用 RFE 计算特征选择或 Boruta使用 SHAP 特征重要性。完整示例可用 here

关于python - 如何将 RFE 与 xgboost Booster 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66308956/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com