十折交叉验证

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

10-fold cross-validation 用来测试算法的准确性。

常用的方法是将数据集分成十份,轮流将
其中的九份作为训练数据,一份作为测试数据,进行验证。

每次验证都会得出相应的正确率,十次结果的正确率的平均值作为对算法精确度的估计。

一般还要进行多次十折交叉验证,再求平均值,作为对算法准确性的估计。

为什么选择十份,是因为在理论和大量实验基础上可以证明十折是获得最好误差评估的恰
当选择。

但是仍然存在争议
以下简称交叉验证(Cross Validation)为CV.CV是用来验证分类器的性能一种统计分
析方法,基本思想是把在某种意义下将原始数据(dataset)进行分组,一部分做为训练集
(train set),另一部分做为验证集(validation set),首先用训练集对分类器进行训练,在
利用验证集来测试训练得到的模型(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有两个明
显的优点:
①每一回合中几乎所有的样本皆用于训练模型,因此最接近原始样本的分布,这样评
估所得的结果比较可靠。

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

但LOO-CV的缺点则是计算成本高,因为需要建立的模型数量与原始数据样本数量相同,当原始数据样本数量相当多时,LOO-CV在实作上便有困难几乎就是不显示,除非每次训练分类
器得到模型的速度很快,或是可以用并行化计算减少计算所需的时间。

相关文档
最新文档