交叉验证的3种方法

欢迎关注”生信修炼手册”!

在机器学习中,数据集可以划分为以下3类

1. 训练集,traning data

2. 验证集,validation data

3. 测试集,test data

将数据集进行划分是非常必要的,如果所有的数据都作为训练集的话,不可避免的会遇到过拟合的问题,所以我们还需要另外的数据对训练集得到的模型的结果进行评估和验证。

三者的关系如下

训练集用于训练模型,验证集用于评估模型,调整模型超参数,测试集则用于评估最后生成的模型的效果。其中验证集是非必需的。

利用验证集来评估模型效果,调整超参数的过程称之为交叉验证,有以下3种常用的策略

1.  hand-out cross validation

称之为留出法,将收集到的数据集,按照一定的比例,事先划分训练集,验证集,测试集3种,图示如下

对于几万量级的数据集,通常的划分比例是60%, 20%, 20%; 对于百万样本以上的数据集,只需要保证验证集和测试集的样本足够即可,其他的样本都可以作为训练集,比如验证集和测试集。

2. leave-one-out cross validation

简称LOOCV,叫做留一法,对于样本总数为N的数据集,进行N次迭代,每次都只保留一个样本作为测试集,剩余的作为训练集,示意如下

留一法每次只取一个样本作为测试集一样,实际上,这里的一可以扩展为其他的数字,与此对应的方法,叫做leave-p-out cross validation,比如p取值为4时,示意如下

在留一法中,需要迭代N次,在留p法中,则是一个排列组合的问题,迭代次数的公式如下

迭代的次数大于留一法。

3. k fold cross validation

称之为K折交叉验证,K指定了迭代的次数,示意如下

将数据集均匀划分为k个子集,每次迭代,使用一个子集作为测试集,其他的作为训练集。LOOCV也可以看做是K折交叉验证的一个特例,K等于样本总数N。对于得到的k个模型,从其中挑选误差最小的作为最终的模型。

对于机器学习而言,训练集上的误差叫做训练误差,测试集上的误差叫做泛化误差。所谓过拟合,就是训练误差很小,但是泛化误差很大。交叉验证的方法同时评估训练误差和泛化误差,可以有效避免过拟合。

·end·

—如果喜欢,快分享给你的朋友们吧—

原创不易,欢迎收藏,点赞,转发!生信知识浩瀚如海,在生信学习的道路上,让我们一起并肩作战!

本公众号深耕耘生信领域多年,具有丰富的数据分析经验,致力于提供真正有价值的数据分析服务,擅长个性化分析,欢迎有需要的老师和同学前来咨询。

  更多精彩

  写在最后

转发本文至朋友圈,后台私信截图即可加入生信交流群,和小伙伴一起学习交流。

扫描下方二维码,关注我们,解锁更多精彩内容!

一个只分享干货的

生信公众号

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值