我正在阅读glmnet文档,我发现了这个:
另请注意,cv.glmnet的结果是随机的,因为折叠 是随机选择的。用户可以通过运行来减少这种随机性 cv.glmnet多次,并对误差曲线求平均值。
以下代码使用带有重复cv的插入符号。
library(caret)
ctrl <- trainControl(verboseIter = TRUE, classProbs = TRUE,
summaryFunction = twoClassSummary, method = "repeatedcv",
repeats = 10)
fit <- train(x, y, method = "glmnet", metric = "ROC", trControl = ctrl)
这是通过插入符号进行交叉验证来运行glmnet的最佳方法吗?或者直接运行glmnet会更好吗?
答案 0 :(得分:0)
您需要定义最佳方式。您要使用
仅在数据集中进行正则回归以进行特征选择? (在这种情况下,请使用glmnet-Max Kuhn暗示,使用具有内置CV功能的模型可能会更好,因为它们会针对预测变量选择和最小化误差进行优化)。见下文。
“”在许多情况下,将这些模型与内置功能选择结合使用,比使用以下算法进行搜索的算法更为有效: 正确的预测变量在模型外部。内建功能 选择通常会将预测变量搜索算法与 参数估计,通常使用单个参数进行优化 目标函数(例如错误率或可能性)。”(库恩,插入符号 软件包说明文件:caret feature selection overview)
还是您要比较不同的模型,其中之一就是glmnet?在这种情况下,插入符号可能是一个不错的选择。