现在,我正在尝试使用 Caret rfe 函数来执行特征选择,因为我处于 p>>n 的情况,并且大多数不涉及某种正则化的回归技术都不能很好地使用。我已经使用了一些正则化技术(Lasso),但我现在想尝试的是减少我的特征数量,以便我能够至少体面地运行任何类型的回归算法。
control <- rfeControl(functions=rfFuncs, method="cv", number=5)
model <- rfe(trainX, trainY, rfeControl=control)
predict(model, testX)
现在,如果我这样做,将运行使用随机森林的特征选择算法,然后根据 5 折交叉验证,将具有最佳特征集的模型用于预测,对?
我在这里对两件事感到好奇:1)有没有一种简单的方法来获取一组特征,并在其上训练另一个用于特征选择的函数?例如,将特征数量从 500 个减少到 20 个左右,这看起来更重要,然后应用 k-最近邻域。
我正在想象一种简单的方法来做到这一点,看起来像这样:
control <- rfeControl(functions=rfFuncs, method="cv", number=5)
model <- rfe(trainX, trainY, method = "knn", rfeControl=control)
predict(model, testX)
2)有没有办法调整特征选择算法的参数?我想对 mtry 的值进行一些控制。与使用 Caret 中的 train 函数时传递值网格的方式相同。有没有办法用 rfe 做这样的事情?