1、为什么要进行交叉验证?
目的:为了得到可靠稳定的模型
交叉验证是一种模型选择方法,其将样本的一部分用于训练,另一部分用于验证。因此不仅考虑了训练误差,同时也考虑了泛化误差。
2、交叉验证的概念
交叉验证(Cross Validation),简称CV,它是用来验证分类器的性能一种统计分析方法。
基本思想:
将原始的数据集进行分组,一部分作训练集,一部分作为验证集,首先用训练集对分类器进行训练,再用验证集来测试训练集得到的模型,以此来作为评价分类器的性能指标。
为了减少交叉验证结果的可变性,对一个样本数据集进行多次不同的划分,得到不同的互补子集,进行多次交叉验证。取多次验证的平均值作为验证结果。
PRESS:
在给定的建模样本中,拿出大部分样本进行建模型,留小部分样本用刚建立的模型进行验证,并求这小部分样本的验证误差,记录它们的平方加和。这个过程一直进行,直到所有的样本都被验证了一次而且仅被验证一次。把每个样本的预报误差平方加和,叫PRESS(predicted Error Sum of Squares)。
3、交叉验证有哪些方法?
(一)Hold-Out Method
思路:
将原始数据分为两组,一组是训练集,一组是验证集,利用训练集来训练分类器,然后利用验证集验证模型。进行多次划分,用均值来表示效能。
优点:
简单,只需要将原始数据随机的分成两组就行了。
缺点:
(1)没有达到交叉的效果。
(2)随机分组,验证集分类的准确率与原始数据分组的关系很大。
(3)有些数据可能从未做过训练或测试数据;而有些数据不止一次选为训练或测试数据。
(二)K-fold Cross Validation(K-CV)
思路:
将原始数据均分成K组,每个子集数据分别做一次验证集,其余的K-1组子集数据作为训练集,这样会得到K个模型,用这K个模型最终验证集的分类准确率的平均数作为此K-CV分类器下的性能指标。
K的取值:
一般是大于等于2,只有在原始数据集合数据量小的时候才会取2
优点:
有效的避免过拟合和欠拟合
(三)Leave-One-Out Cross Validation(LOO-CV)
思路:
假设原始数据有N个样本,其实LOO-CV也就是N-CV,每个样本单独的作为验证集,其余的N-1个样本作为训练集,所以LOO-CV会得到N个模型,用这N个模型的最终的验证集的分类准确率的平均数作为此LOO-CV分类器的性能指标。
优点:
(1)每轮中几乎所有的样本都可以用于训练模型,因此能够使训练的模型最接近样本真实分布,评估的结果很可靠。
(2)实验的过程中没有随机因素。
缺点:
如果样本量很大,那么需要建立的模型的数量也很大,计算成本高。
**4、模型选择过程 **
在了解交叉验证之后,简单介绍模型的选择过程:
通过采用不同的输入训练样本,来决定机器学习算法中包含的各个参数值,叫做模型选择。
(1)首先准备q个候选的模型
(2)对每个模型求解它的学习结果
(3)对学习误差排序,选择误差最小的模型作为最终的模型
举例:将有标注的data分为训练集,(交叉)验证集,测试集三份:
在做模型选择,更确切的说做模型参数选择的时候,这里以多项式kernel的SVM为例,我们需要选择的参数是多项式的阶数:
1 训练:先用训练集在一次模型、二次模型、三次模型(几次指的是的z=Zθ(x) 阶数)情况下跑一下,然后用数值优化的算法求得在指定阶数情况下,使Training error最小的参数θ分别是多少
2 参数寻优:用交叉验证集在1中得到的每个模型M(1,θ1)...M(k,θk)...M(n,θn)跑一下,计算出Cross Validation error,选择使这个error最小的模型次数k
3 最终训练:给定阶数k,训练得出在Training Set+CV Set上,使Training error最小的参数θ,得到模型M(k,θk')
总结:
利用n-fold交叉验证,是现在做机器学习实验最常用的做法
(1)数据按比例划分为训练集A、测试集B
(2)使用训练数据A进行n-fold验证,训练集分为a1~an共n份,n份中的每一份ai轮流做CV set,其余n-1份作为Training set,这样训练n次,取n次所得CV error平均值作为一个模型最终的CV error,以此选出最优模型参数。
(3) 再用整个训练集A在选出的最优模型参数下训练出一个模型。
(4)最后在测试集B上测试给出结果。
NG课程小结:
就拿选择阶数的例子来说,如果我们把数据集分成了训练集和测试集,用训练集来进行参数的确定,用测试集来选择阶数d,再用测试集测模型是不准的;所以我们分成了三部分:训练集、验证集、测试集。其中验证集做的就是确定阶数d,用测试集来查看其泛化能力。
参考资料:
http://blog.csdn.net/chl033/article/details/4671750
http://blog.sina.com.cn/s/blog_688077cf0100zqpj.html
https://www.zhihu.com/question/23561944
http://www.cnblogs.com/wei-li/archive/2011/12/01/2270244.html