本篇为整理的定义来自周志华老师的西瓜书
1.评估方法
对数据集进行适当的处理将其划分为测试集和训练集
1.1留出法
对于数据的划分方法,设D为数据全集,S为训练数据集,T为测试数据集。对于数据集的划分,如果S太多,则会导致训练出来的模型更接近D训练出来的模型,此时T也就是测试数据集会相对较小,评估结果不够稳定准确。但如果S太少,则训练出的模型与D训练出的模型差别又太大,从而降低了评估结果的保真性。所以训练集的样本划分要保持数据分布的一致性,避免因数据划分过程引入的额外误差,类比于分层采样。
一般情况下留出1/5~1/3的数据作为测试数据集来测试模型的泛化误差
单次使用留出法得到的估计结果并不可靠稳定,在使用留出法时,一般要采用若干次随机划分,重复进行试验评估后取平均值作为划分结果。
1.2交叉验证法
现将数据集分为K大小相似的互斥子集,都保持数据分布的一致性。以K-1个子集作为训练集,剩下的一个作为测试集,这样就可以进行K次测试。(K(折)倍交叉验证),常用的有10折交叉验证。
与留出法相似,将数据集划分为K个子集通常存在多种划分方式,为了减小因样本划分不同而引入的差别,要进行不同的划分P次(P次K倍交叉验证)。
若样本总数为M,若令K=M,称为留一法。留一法被实际评估的模型与期望评估的用D训练出来的模型很相似。因此,留一法的评估往往被认为比较准确。但缺点是当数据量过大时,计算量较大。
1.3自助法(数据量较少的情况下)
留出法与交叉验证法都将一部分样本用于测试,这必然会导致由S训练出的模型与D训练出的模型产生不可避免的误差,留一法受训练样本规模变化影响较小,但是计算量太高了。而自助法可以减少训练样本规模不同造成的影响且相对高效。
自助法在数据集较小时,难以有效划分训练/测试集时很有用。然而自助法产生的数据集改变了初始数据集的分布,这会引入估计偏差,所以当数据集足够时,留出法和交叉验证法更加常用。