留一法 python 留一法解读_数据集

与留出法相似,将数据集D划分为k个子集同样存在多种划分方式。

为减小因样本划分不同而引入的差别,k折交叉验证通常要随机使用不同的划分重复p次,最终的评估结果是这p次k折交叉验证结果的均值,例如常见的有“10次10折交叉验证”。

假定数据集D中包含m个样本,若令k= m,则得到了交叉验证法的一个特例:留一法(Leave One-Out,简称LOO).显然,留一法不受随机样本划分。方式的影响,因为m个样本只有唯一的方式划分为m个子集一每个子集包含一个样本;留一法使用的训练集与初始数据集相比只少了一个样本,这就使得
在绝大多数情况下,留一法中被实际评估的模型与期望评估的用D训练出的模型很相似。因此,留-法的评估结果往往被认为比较准确。

然而,留一法也有其缺陷:在数据集比较大时,训练m个模型的计算开销可能是难以忍受的(例如数据集包含1百万个样本,则需训练1百万个模型),而这还是在未考虑算法调参的情况下。另外,留一法的估计结果也未必永远比其他评估方法准确。


模型误差问题的介绍:

留一法 python 留一法解读_留一法 python_02

 

有多种因素可能导致过拟合,其中最常见的情况是由于学习能力过于强大,以至于把训练样本所包含的不太一般的特性都学到了,而欠拟合则通常是由于学习能力低下而造成的。

欠拟合比较容易克服,例如在决策树学习中扩展分支、在神经网络学习中增加训练轮数等,而过拟合则很麻烦。在后面的学习中我们将看到,过拟合是机器学习面临的关键障碍,各类学习算法都必然带有一些针对过拟合的措施;然而必须认识到,过拟合是无法彻底避兔的,我们所能做的只是“缓解”,或者说减小其风险。