如何在插入符号或整形模型中使用LASSO进行嵌套交叉验证?

问题描述 投票:1回答:1

目标

我想根据here所示的示意图实施LASSO模型并在训练集上检查其可行性。 (原理图描述:将所有数据划分为测试和训练集。通过5倍交叉验证(CV)将训练集划分为重采样。对每个重采样执行10倍CV以找到最佳的lambda。)设置尚不可用。

我想对LASSO模型进行建模,并使用带有内部CV的嵌套CV来检查其性能,以通过网格搜索和外部CV来获得最佳lambda(分析和评估),以比较重采样1、2、3等。>

Caret with'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)。

目标,我想实施LASSO模型,并根据此处显示的示意图在训练集上检查其可行性。 (示意图:将所有数据分为测试集和训练集。...

r cross-validation r-caret lasso-regression tidymodels
1个回答
1
投票

您可以使用nested_cv()在tidymodel中实现嵌套重采样:

© www.soinside.com 2019 - 2024. All rights reserved.