使用xgboost和提前停止功能选择(并使用mlxtend进行功能选择)

2024-04-28 17:32:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我想为启用早期停止功能的xgboost模型进行功能选择(使用mlxtend库中的SequentialFeatureSelector,但可以选择其他选项)

既然early_stoppingfit()函数的参数,而不是模型参数,那么,既然我还需要传递eval_set参数,那么如何通过交叉验证进行特征选择呢。在

以下代码将无法工作,因为我需要传递eval_set参数,但交叉验证将由SequentialFeatureSelector基于cv索引器选择

SequentialFeatureSelector(xgboostmodel,k_features=2,forward=False,floating=False,scoring='balanced_accuracy',cv=cv).fit(X,y,early_stopping_rounds=5,eval_set = [(Xtest, ytest)])

Xtestytest应该是cv选择的cv

另一个问题是特征选择器将从训练集中逐个删除特征,但是eval_set与全部初始特征集保持不变。在


Tags: 模型功能false参数eval特征交叉cv