Loops 重复K-折叠交叉验证的循环
我正在尝试编写一个循环,用于重复的k折叠交叉验证。基本上,尝试执行10倍交叉验证,并重复该过程10次,以获得预测结果和10个AUC值 我似乎在循环中遗漏了一些东西,它允许将计算出的预测移动到为k倍结果创建的空数据帧的相应列中。我只得到最后的k倍分数,而不是全部10倍。我仍然需要得到每次k倍验证的auc值 是否有办法将auc计算合并到循环中以获得值?如果有人能指导我,我将不胜感激Loops 重复K-折叠交叉验证的循环,loops,cross-validation,Loops,Cross Validation,我正在尝试编写一个循环,用于重复的k折叠交叉验证。基本上,尝试执行10倍交叉验证,并重复该过程10次,以获得预测结果和10个AUC值 我似乎在循环中遗漏了一些东西,它允许将计算出的预测移动到为k倍结果创建的空数据帧的相应列中。我只得到最后的k倍分数,而不是全部10倍。我仍然需要得到每次k倍验证的auc值 是否有办法将auc计算合并到循环中以获得值?如果有人能指导我,我将不胜感激 库(cvTools) 图书馆(glmnet) #图书馆(pROC) k插入符号包提供了开箱即用的重复交叉验证。下面是
库(cvTools)
图书馆(glmnet)
#图书馆(pROC)
k插入符号包提供了开箱即用的重复交叉验证。下面是一个简单的工作示例:
library(caret)
model <- train(x = iris[51:150,1:2],
y = factor(iris[51:150,5]),
method = 'glmnet',
metric='ROC',
trControl = trainControl(method = 'repeatedcv', # repeated cross validation
number = 10, # nr of partitions
repeats = 10, # nr of repeats
classProbs = T,
summaryFunction = twoClassSummary))
顺便说一句:如果您还想绘制所有分区和重复的ROC曲线,请参阅 这已经很晚了,但下面是对代码的更正。
将行中的i
替换为j
谢谢你的回复。然而,在使用caret软件包之前,我尝试将其作为第一步进行自我编码,这将是下一步。我一定会以你为榜样。
library(caret)
model <- train(x = iris[51:150,1:2],
y = factor(iris[51:150,5]),
method = 'glmnet',
metric='ROC',
trControl = trainControl(method = 'repeatedcv', # repeated cross validation
number = 10, # nr of partitions
repeats = 10, # nr of repeats
classProbs = T,
summaryFunction = twoClassSummary))
> model$resample
ROC Sens Spec Resample
1 0.90 0.8 0.8 Fold05.Rep10
2 0.98 1.0 0.8 Fold04.Rep10
3 0.80 1.0 0.2 Fold01.Rep09
4 0.64 0.4 0.8 Fold08.Rep07
5 0.86 0.8 0.8 Fold05.Rep06
[...]