使用gltnet和插入符号的正确方法是什么?

时间:2017-01-16 22:12:24

标签: r r-caret glm glmnet

我正在阅读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会更好吗?

1 个答案:

答案 0 :(得分:0)

您需要定义最佳方式。您要使用

  • 仅在数据集中进行正则回归以进行特征选择? (在这种情况下,请使用glmnet-Max Kuhn暗示,使用具有内置CV功能的模型可能会更好,因为它们会针对预测变量选择和最小化误差进行优化)。见下文。

      

    “”在许多情况下,将这些模型与内置功能选择结合使用,比使用以下算法进行搜索的算法更为有效:   正确的预测变量在模型外部。内建功能   选择通常会将预测变量搜索算法与   参数估计,通常使用单个参数进行优化   目标函数(例如错误率或可能性)。”(库恩,插入符号   软件包说明文件:caret feature selection overview

  • 还是您要比较不同的模型,其中之一就是glmnet?在这种情况下,插入符号可能是一个不错的选择。