2017-04-11 103 views
0

我有一个简单的代码,它使用rfe在我的数据的不同时间段执行特征选择。我用下面的rfeControlrfe函数调用:在R中,插入符号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,在2在我的20个时间段中,特征选择结果为65个特征(这是初始数据集中特征的总数)。

我是新来使用这个功能,我不知道我在这里做错了什么,任何帮助表示赞赏!

谢谢!

回答

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)。