我想针对启用了提前停止功能的xgboost
模型进行功能选择(使用SequentialFeatureSelector
库中的mlxtend
,但可以选择其他选项)
由于early_stopping
是fit()
函数的参数,而不是模型参数,如果我还需要传递eval_set
参数,我该如何通过交叉验证进行特征选择。
以下代码将不起作用,因为我需要传递eval_set参数,但是交叉验证将由SequentialFeatureSelector
根据简历索引器选择
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)])
Xtest
和ytest
应该是cv
选择的cv
集
另一个问题是特征选择器将一个一组地删除训练集中的特征,但是eval_set
在整个初始特征集合中保持不变。