0

我有一个简单的代码,用于rfe对我的数据的不同时间段执行特征选择。我使用以下rfeControlrfe函数调用:

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 个特征(这是初始数据集中的特征总数)。

我是使用此功能的新手,我不知道我在这里做错了什么,感谢任何帮助!

谢谢!

4

1 回答 1

0

如果您查看 RFE 算法的描述 ( http://topepo.github.io/caret/recursive-feature-elimination.html ),您会发现有必要在第一次迭代中包含所有功能。

您的下一个问题可能是如何选择特征较少的次优模型。可以在这里找到一个答案(尽管它不是很有帮助): Access all models generated by rfe in caret

我建议调整排名函数以允许在错误方面不是最佳但更小的特征集(参见:http ://topepo.github.io/caret/recursive-feature-elimination.html#the-selectsize -函数)。

于 2017-04-11T17:59:25.177 回答