博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
交叉验证
阅读量:4994 次
发布时间:2019-06-12

本文共 854 字,大约阅读时间需要 2 分钟。

   在建立分类模型时,交叉验证(Cross Validation)简称为CV,CV是用来验证分类器的性能。它的主体思想是将原始数据进行分组,一部分作为训练集,一部分作为验证集。利用训练集训练出模型,利用验证集来测试模型,以评估分类模型的性能。

训练数据上的误差叫做训练误差,它对算法模型的评价过于乐观。利用测试数据测量的是测试误差,我门报告的是测试误差。有的时候训练集上的正确率可能达到100%,但是在测试集上可能和随机猜测差不多。

交叉验证常用的几种方法:

1.去一法  Leave-One-Out Cross Validation(记为LOO-CV)

   它的做法是,从训练集中拿出一个样本,并在缺少这个样本的数据上训练出一个模型,然后看模型是否能对这个样本正确分类。假设样本个数有N个,则该方法一共要训练出N个模型,利用这N个模型最终的验证集的分类准确率的平均数作为此下LOO-CV分类器的性能指标。然而随着数据量的增大,工作量会剧增,在时间是处于劣势。但是它具有显著德尔优点:

    1)每一回合中几乎所有的样本皆用于训练模型,因此最接近原始样本的分布,这样评估所得的结果比较可靠。

    2)实验过程中没有随机因素会影响实验数据,确保实验过程是可以被复制的。

2 k折交叉验证  K-fold Cross Validation(记为K-CV)

    K折交叉验证是以部分代价去获得去一法的大部分收益,这里的k折是吧数据分为k组。它的做法是将k-1组作为训练集训练出一个模型,然后将剩下的一组用做测试集。利用这k个模型最终的平均正确率来衡量模型的正确率。常使用的一般是5折10折,5折交叉验证是将数据分为5组。实际做法是把20%的数据拿出去作为测试集,将剩下的80%数据训练模型。使用80%或者90%的数据与使用所有数据的效果比较接近。

使用交叉验证时,需要谨慎保持数数据的分布平衡,不能在某一折中全部是一类的数据。

 

转载于:https://www.cnblogs.com/td15980891505/p/6016062.html

你可能感兴趣的文章
感觉这周的每日都是累
查看>>
Tarjan求点双连通分量
查看>>
Tomcat项目自动部署脚本
查看>>
Python操作MySQL数据库
查看>>
自动化部署之jenkins及简介
查看>>
CodeForces 1152D Neko and Aki's Prank
查看>>
Python 用pygame模块播放MP3
查看>>
inline必须在定义、实现都标记
查看>>
从单链表到循环链表
查看>>
百度招聘无处不在!
查看>>
丢失控制文件恢复实验记录--3(当前的控制文件损坏,归档日志文件损坏且备份的控制文件是旧的情况恢复数据库)...
查看>>
Ganglia监控MySQL
查看>>
反射和动态导入模块
查看>>
信息社会
查看>>
Mysql存储引擎概念特点介绍及不同业务场景选用依据
查看>>
关于Java类Calendar做统计时 获取日期的一些常见操作
查看>>
从程序员转向淘宝店主的探索
查看>>
openstack 中国联盟公开课參会总结
查看>>
约瑟夫环问题详解 (c++)
查看>>
Ubuntu 配置VNC以及使用VNC连接时,无法显示系统菜单栏,解决方法
查看>>