我有一个简单的代码,使用rfe
在我的数据的不同时间段上执行功能选择。我使用以下rfeControl
和rfe
函数调用:
control <- rfeControl(functions=rfFuncs, method="cv", number=10)
results <- rfe(feature_selection_data
, feature_selection_target$value
, sizes = c(1:12)
, rfeControl = control)
每次运行时,我都会将值插入列表中:
include <- predictors(results)
include_list[[row]] <- include
不知何故,虽然我将大小设置为最多12个,但在20个时间段中的2个中,特征选择会产生65个要素(这是初始数据集中要素的总数)。
我是新手使用这个功能,我不知道我在这里做错了什么,感谢任何帮助!
谢谢!
答案 0 :(得分:0)
如果你看一下RFE算法的描述(http://topepo.github.io/caret/recursive-feature-elimination.html),你会发现有必要在第一次迭代中包含所有特征。
您的下一个问题可能是如何选择功能较少的次优模型。一个答案可以在这里找到(虽然它没有太大帮助): Access all models produced by rfe in caret
我建议调整排名功能,以允许功能集在错误方面不是最佳,但是更小(请参阅:http://topepo.github.io/caret/recursive-feature-elimination.html#the-selectsize-function)。