假设我们有一个类似于正弦分布的数据。在最极端的情况下如图 a ,我们只有一个样本,可以看到许多模型都可以很好地拟合这个数据点,但绝大多数模型都是过拟合,且在整个数据集上效果不是很好。当我们增加数据时,从图 b 可以看出可以拟合这些数据的模型逐渐减少。随着我们进一步增加数据点,我们最终会成功获得数据的真实分布。这个例子可以使我们很直观地了解数据量是如何帮助模型揭示数据的真实关系。接下来,我们将通过举例几个算法,看看模型的参数是如何受到数据量大小影响的。
线性回归
在线性回归中,我们假设 X 和 y 之间存在线性关系:
其中 y 是因变量,x(i) 是自变量。β(i) 为真实系数,ϵ 为模型未解释的误差。在单变量情况下,基于观测值的预测系数如下:
上述公式给出了斜率和截距的预测点,但这些估值总是存在一些不确定性,这些不确定性可由方差方程量化:
由公式可得随着数据量的增加,分母会变大,就是我们预测点的方差变小。因此,我们的模型会更稳健。
k-NN
k-NN 是一种用于回归和分类里最简单但功能强大的算法。k-NN 不需要任何特定的训练阶段,其原理就是给定一个已知标签类别的训练数据集,输入没有标签的新数据后,在训练数据集中找到与新数据最邻近的 k 个实例,如果这 k 个实例的多数属于某个类别,那么新数据就属于这个类别。即由那些离新数据最近的 k 个实例来投票决定新数据归为哪一类。
嵌套交叉验证的每个 fold 中都包含训练,验证和测试数据。在内循环中,我们将模型拟合到每个训练集来最大化模型得分,然后通过在外循环的验证集上选择超参数来得到最高分值。我们可以通过对不同交叉验证折叠中的测试得分求平均来估计样本外误差。Varma 和 Simon 在论文 Bias in Error Estimation When Using Cross-validation for Model Selection 中指出使用嵌套交叉验证得到的测试集误差几乎就是真实误差。