K-fold交叉验证

K-fold交叉验证步骤:

图片来源:https://www.knowledgehut.com/blog/data-science/k-fold-cross-validation-in-ml#cross-validation%C2%A0

1、R语言进行kfold检验:
https://www.jianshu.com/p/47a4ee095672
代码:#多次K折交叉验证,如5折400次交叉验证 folds <-createMultiFolds(y=aa$status,k=5,times=400)

2、caret::createFolds() vs. createMultiFolds()对比

createFolds(y, k = 10, list = TRUE, returnTrain = FALSE)

其中,k是folds的数目,list,是否以列表形式返回,returnTrain,false时返回的是测试集的索引,true时返回的是训练集的索引(仅当list=TRUE时,returnTrain=TRUE才有效)

https://www.r-bloggers.com/2020/11/caretcreatefolds-vs-createmultifolds/
默认情况下,createFolds()返回一个列表,其中包含每个折叠的已保存观测值的索引,而createMultiFold()返回每个折叠中每次重复的观测值列表。

https://stackoverflow.com/questions/65012936/r-caret-createfolds-vs-createmultifolds-discrepancies

3、分类
https://blog.csdn.net/WHYbeHERE/article/details/108192957

  • 分层交叉验证:分层是重新将数据排列组合,使得每一折都能比较好地代表整体。(避免了随机划分可能产生的的情况)。代码:folds <- createFolds(factor(data$target), k = 10, list = FALSE)
    在进行 K 折交叉验证时,每个子集的样本类别比例都与原始数据集中保持一致。
    在这里插入图片描述
    图片来源:https://www.bilibili.com/read/cv12736369/
    分层K折交叉验证的工作方式与K折交叉验证相同,唯一的区别是它确保每个分类值的观察百分比相同。

  • 标准交叉验证(即K折交叉验证):直接将数据分成几折;将原始数据随机分成 K 个子集(通常是等分),每次选择其中一个子集作为测试集,其他 K-1 个子集作为训练集,进行 K 次训练和验证,最后将 K 次验证结果平均得到最终的性能评估。

  • 重复交叉验证( k-fold cross validation with repetition):如果训练集不能很好地代表整个样本总体,分层交叉验证就没有意义了。这时候,可以使用重复交叉验证。

学习资料:
1.机器学习里的K-Fold交叉验证你会用吗?一个Python示例就可以教会你
2、Repeated k-Fold Cross-Validation:https://machinelearningmastery.com/repeated-k-fold-cross-validation-with-python/
3、Apply k-Fold Cross-Validation Using Logistic Regression:
https://rforhr.com/kfold.html
4、深入研究k折交叉验证(K fold Cross Validation):https://www.bilibili.com/read/cv12736369/
5、五种交叉验证方法的 R 语言实现:https://developer.aliyun.com/article/1228008

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LOO策略是指Leave One Out Cross Validation,它是一种K-fold交叉验证的方法,其中K的取值等于数据集的行数n。在LOOCV中,每次只留下一个样本作为验证集,其余的样本作为训练集,然后重复这个过程n次,每次都选择不同的样本作为验证集。最后,将n次验证的结果取平均作为模型的性能指标。\[2\] LOOCV的优点是可以充分利用数据集中的每个样本进行验证,因为每个样本都会被作为验证集一次。这样可以更准确地评估模型的性能。然而,LOOCV的缺点是计算成本较高,因为需要重复n次训练和验证的过程。特别是当数据集较大时,计算时间会显著增加。\[2\] 总结来说,LOOCV是一种较为准确但计算成本较高的交叉验证方法,适用于数据集较小的情况下。它可以帮助我们评估模型的性能,并选择最佳的模型。 #### 引用[.reference_title] - *1* *2* [三种模型验证方法:holdout, K-fold, leave one out cross validation(LOOCV)](https://blog.csdn.net/qq_36333576/article/details/124108974)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [交叉验证(Cross-Validation)](https://blog.csdn.net/JavaChaoCo/article/details/50957685)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值