如何正确地在caret中使用glmnet?

4
我在阅读glmnet文档时发现了这个内容:
请注意,cv.glmnet的结果是随机的,因为随机选择了折叠。用户可以通过多次运行cv.glmnet并平均错误曲线来减少这种随机性。
以下代码使用caret进行重复交叉验证。
library(caret)

ctrl <- trainControl(verboseIter = TRUE, classProbs = TRUE, 
                     summaryFunction = twoClassSummary, method = "repeatedcv", 
                     repeats = 10) 

fit <- train(x, y, method = "glmnet", metric = "ROC", trControl = ctrl)

这是使用caret运行glmnet进行交叉验证的最佳方法吗?还是直接运行glmnet更好?

1个回答

1
你需要定义“最佳方法”。你想使用以下哪种方法之一进行特征选择吗?
1. 仅在数据集上使用正则化回归进行特征选择?(在这种情况下,使用glmnet--Max Kuhn暗示您最好使用具有内置CV功能的模型,因为它们已经针对预测器选择和最小化误差进行了优化)。请参见下文。
“在许多情况下,使用具有内置特征选择的模型比外部搜索正确预测器的算法更有效。内置特征选择通常将预测器搜索算法与参数估计耦合,并且通常通过单个目标函数(例如错误率或似然)进行优化。” (Kuhn, caret软件包文档: caret feature selection overview)
2. 或者您正在比较不同的模型,其中之一是glmnet?在这种情况下,caret可能是一个很好的选择。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接