交叉验证要点
1.交叉验证的作用
交叉验证是建立模型和验证模型参数的一种方法,可用于评估模型的预测性能。操作方法就是把样本数据分成训练集和测试集,训练集用于训练模型,测试集用来评估模型。
当样本数据不多时(还不到少得可怜的地步),可以采用交叉验证来训练模型,从而选择最优的模型。
2.简单交叉验证
简单交叉验证就是把样本数据随机按比例分成训练集和测试集,然后训练模型和验证模型及参数。在样本数据上进行多次这样的操作,每次得到的训练集和测试集都不同,训练得到的模型及参数也不尽相同,从而通过评估损失函数,选择最优的模型和参数。
3.K折交叉验证
K折交叉验证就是把样本数据随机分成K分,然后随机的选择其中的(K-1)份作为训练集数据来训练模型,最后一份作为测试集。K份样本数据中取(K-1)份,可以有K种组合,所以可以进行小于等于K次这样的操作,然后通过评估损失函数,选择最优的模型和参数。
4.留一交叉验证
留一交叉验证就是K折交叉验证的特例,如果样本数据为m,此时K=m
,即验证集的样本数据只有一个。很明显,如果不是数据很少的情况,也不至于只留一个样本作为验证集了,所以这种方法主要还是用于样本数据非常少的情况。这种方法只有一个数据不参与训练,最大限度的使训练数据接近原始数据的分布。
5.如何选择
从上面三种交叉验证的操作过程可以知道,如果只是粗略的建模,简单交叉验证即可,一般情况下都是用K折交叉验证,而留一交叉验证明显是用于样本数据少的情况。
如果样本数据很充足,则可以把样本数据随机分成三个集合,一个为训练集,一个为验证集,一个为测试集。训练集用于训练模型,验证集用来评估模型预测的好坏,从而选择最优模型及参数,测试集则用来评估模型的泛化能力,得到最优模型及参数,从而选出最终的最合适的模型及参数。