我有一个简单的代码,使用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个特征(这是初始数据集中的特征总数)。
我是新手使用这个功能,我不知道我在这里做错了什么,感谢任何帮助!
谢谢!
如果你看一下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)。