【发布时间】:2020-06-09 06:32:17
【问题描述】:
目标
我想实现一个 LASSO 模型,并根据here 所示的示意图检查它在训练集上的可行性。 (示意图说明:所有数据都分为测试集和训练集。训练集通过 5 倍交叉验证 (CV) 分成重采样。其中对每个重采样执行 10 倍 CV 以找到最佳 lambda。)套装尚不可用。
我想使用嵌套 CV 和内部 CV 进行 LASSO 模型并检查其性能,以通过网格搜索和外部 CV 来比较重采样 1、2、3 等来获得最佳 lambda(分析和评估)。
带有“repeatedcv”的插入符号
使用 Caret 的“repeatedcv”的列车控制允许指定次数和重复次数。
lambdas = 10^seq(-3, -1, length = 20)
trControl = trainControl(
'repeatedcv',
number = 10,
repeats = 5,
search = 'grid'
)
tuneGrid = expand.grid(alpha = 1, lambda = lambdas)
lasso = train(
PD ~ ., data = selection,
method = 'glmnet',
trControl = trControl,
tuneGrid = tuneGrid
)
lasso$results
使用上面的代码,插入符号结果是一个包含 20 行的数据框。大概是定义网格上每个点的一行。但是,我希望插入符号使用 10 倍(数字 = 10)CV 为每个网格搜索找到一个最佳 lambda,然后比较最佳 lambda,因为粗体过程已执行多次(重复 = 5).
【问题讨论】:
标签: r cross-validation r-caret lasso-regression tidymodels