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

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

分类器模型通常在特定的数据上进行训练,由于所得模型可能存在过拟合的现象。因此,模型训练完成之后通常需要进行检验,以验证分类模型在未知数据集上的预测能力,即我们通常所说的“模型泛化”能力。模型的验证是模型在投入使用前的关键步骤,在此收集了当下比较流行的交叉验证技术资料,整理如下,方便查阅和温习:

交叉验证(CrossValidation)方法思想简介

以下简称交叉验证(Cross  Validation)为CV.CV是用来验证分类器的性能一种统计分析方法,基本思想是把在某种意义下将原始数据(dataset)进行分组,一部分做为训练集(train  set),另一部分做为验证集(validationset),首先用训练集对分类器进行训练,在利用验证集来测试训练得到的模型(model),以此来做为评价分类器的性能指标.常见CV的方法如下:

 

1).Hold-Out Method

将原始数据随机分为两组,一组做为训练集,一组做为验证集,利用训练集训练分类器,然后利

用验证集验证模型,记录最后的分类准确率为此Hold-OutMethod下分类器的性能指标.此种

方法的好处的处理简单,只需随机把原始数据分为两组即可,其实严格意义来说Hold-Out

Method并不能算是CV,因为这种方法没有达到交叉的思想,由于是随机的将原始数据分组,所

以最后验证集分类准确率的高低与原始数据的分组有很大的关系,所以这种方法得到的结果

其实并不具有说服性.

 

2).K-fold Cross Validation(记为K-CV)

将原始数据分成K组(一般是均分),将每个子集数据分别做一次验证集,其余的K-1组子集数

据作为训练集,这样会得到K个模型,用这K个模型最终的验证集的分类准确率的平均数作为

此K-CV下分类器的性能指标.K一般大于等于2,实际操作时一般从3开始取,只有在原始数据

集合数据量小的时候才会尝试取2.K-CV可以有效的避免过学习以及欠学习状态的发生,最后

得到的结果也比较具有说服性.

 

3).Leave-One-Out Cross Validation(记为LOO-CV)

如果设原始数据有N个样本,那么LOO-CV就是N-CV,即每个样本单独作为验证集,其余的N-1

个样本作为训练集,所以LOO-CV会得到N个模型,用这N个模型最终的验证集的分类准确率

的平均数作为此下LOO-CV分类器的性能指标.相比于前面的K-CV,LOO-CV有两个明显的优点:

a.每一回合中几乎所有的样本皆用于训练模型,因此最接近原始样本的分布,这样评估所得的

结果比较可靠。

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

但LOO-CV的缺点则是计算成本高,因为需要建立的模型数量与原始数据样本数量相同,当原

始数据样本数量相当多时,LOO-CV 在实作上便有困难几乎就是不显示,除非每次训练分类器

得到模型的速度很快,或是可以用并行化计算减少计算所需的时间. 

资料整理自网络,感谢原作者。

转载于:https://www.cnblogs.com/cl1024cl/p/6205051.html

你可能感兴趣的文章
Python-S9-Day127-Scrapy爬虫框架2
查看>>
SecureCRT的使用方法和技巧(详细使用教程)
查看>>
右侧导航栏(动态添加数据到list)
查看>>
81、iOS本地推送与远程推送详解
查看>>
虚拟DOM
查看>>
自建数据源(RSO2)、及数据源增强
查看>>
关于View控件中的Context选择
查看>>
2018icpc徐州OnlineA Hard to prepare
查看>>
Spark的启动进程详解
查看>>
使用命令创建数据库和表
查看>>
机器视觉:SSD Single Shot MultiBox Detector
查看>>
201521123044 《Java程序设计》第1周学习总结
查看>>
MIT Scheme 的基本使用
查看>>
在16aspx.com上下了一个简单商品房销售系统源码,怎么修改它的默认登录名和密码...
查看>>
c++回调函数
查看>>
linux下Rtree的安装
查看>>
【Java】 剑指offer(53-2) 0到n-1中缺失的数字
查看>>
Delphi中ListView类的用法
查看>>
多米诺骨牌
查看>>
Linq 学习(1) Group & Join--网摘
查看>>