大数据在教育中的应用 part2笔记

什么是交叉检验(K-fold cross-validation)

 

K层交叉检验就是把原始的数据随机分红K个部分。在这K个部分中,选择一个做为测试数据,剩下的K-1个做为训练数据。html

交叉检验的过程其实是把实验重复作K次,每次实验都从K个部分中选择一个不一样的部分做为测试数据(保证K个部分的数据都分别作过测试数据),剩下的K-1个看成训练数据进行实验,最后把获得的K个实验结果平均。post

 

http://www.ilovematlab.cn/thread-49143-1-1.html性能

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



如下简称交叉验证(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有两个明显的优势:



a.每一回合中几乎全部的样本皆用于训练模型,所以最接近原始样本的分布,这样评估所得的结果比较可靠。



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


LOO-CV的缺点则是计算成本高,由于须要创建的模型数量与原始数据样本数量相同,当原始数据样本数量至关多时,LOO-CV在实做上便有困难几乎就是不显示,除非每次训练分类器获得模型的速度很快,或是能够用并行化计算减小计算所需的时间.
 
 
 
 
若是你理解 k-fold cross validation的话,其实这个和它的意思是差很少的。k-fold,就是取整个样本的1/k做为预测样本,(k-1)/k做为训练样本。当用训练样本对数据做出模型后,再用预测样原本预测。
leave-one-out就是把n-1个样本做为训练集,剩下一个样本做为预测集。而且循环,使得每一个样本都做为一次预测集,而后计算交叉验证的正确率。
 
http://blog.xuite.net/x5super/studyroom/61471385-%E4%B8%80%E7%AF%87%E5%BE%88%E6%A3%92%E7%9A%84%E6%B8%AC%E8%A9%A6%28%E5%9B%9E%E6%B8%AC%29%E6%8A%80%E8%A1%93%E6%96%87%E7%AB%A0
相关文章
相关标签/搜索