我目前正在使用xgb.train(...)
,它返回一个助推器,但是我想使用RFE来选择最好的100个特性。返回的助推器不能用于RFE,因为它不是sklearn估计器。XGBClassifier是xgboost库中的sklearn api,但是,我无法获得与xgb.train(...)
方法相同的结果(roc auc的结果差10%)。我试过sklearn助推器,但也不能得到类似的结果。我还尝试在类中包装xgb.train(...)
方法以添加sklearn估计器方法,但是有太多的方法需要更改。有什么方法可以将xgb.train(...)
与sklearn的RFE一起使用吗
对于这类问题,我创建了shap-hypetune:一个python包,用于同时调整超参数和梯度增强模型的特性选择
在您的情况下,这使您能够以非常简单和直观的方式使用
XGBClassifier
执行RFE
:如您所见,您可以使用标准xgbapi中可用的所有拟合选项,如
early_stopping_rounds
或自定义度量,来定制培训过程您还可以使用shap hypetune计算参数调整(也可以与特征选择同时进行),或者使用shap特征重要性使用
RFE
或Boruta
计算特征选择。完整示例可用here相关问题 更多 >
编程相关推荐