任何时候,一旦发现模型和测量值之间存在差异,就说出现了误差。当考虑模型中的“噪声”或者说误差时,必须考虑其的来源。你可能会对复杂的过程进行简化,这将导致在模型和测量值之间出现“噪声”或误差,若无法理解数据的真实生成过程,也会导致差异的发生。另外,测量过程本身也可能产生“噪声”或者问题。下面举一个例子,8.1节和8.2节处理过一个从文件导入的二维数据。实话来讲,这个数据是我自己造出来的,其具体的生成公式如下:
其中N(0,1)
是一个均值为0、方差为1的正态分布。在8.1节中,我们尝试过仅用一条直线来拟合上述数据。不难想到,直线所能得到的最佳拟合应该是3.0+1.7x
这一部分。这样的话,误差部分就是0.1sin(30x)+0.06N(0,1)
。在8.2节和8.3节,我们使用了局部加权线性回归来试图捕捉数据背后的结构。该结构拟合起来有一定的难度,因此我们测试了多组不同的局部权重来找到具有最小测试误差的解。
图8-8给出了训练误差和测试误差的曲线图,上面的曲线就是测试误差,下面的曲线是训练误差。根据8.3节的实验我们知道:如果降低核的大小,那么训练误差将变小。从图8-8来看,从左到右就表示了核逐渐减小的过程。
图8-8 偏差方差折中与测试误差及训练误差的关系。上面的曲线就是测试误差,在中间部分最低。为了做出最好的预测,我们应该调整模型复杂度来达到测试误差的最小值
一般认为,上述两种误差由三个部分组成:偏差、测量误差和随机噪声。在8.2节和8.3节,我们通过引入了越来越小的核来不断增大模型的方差。
8.4节介绍了缩减法,可以将一些系数缩减成很小的值或直接缩减为0,这是一个增大模型偏差的例子。通过把一些特征的回归系数缩减到0,同时也就减少了模型的复杂度。例子中有8个特征,消除其中两个后不仅使模型更易理解,同时还降低了预测误差。图8-8的左侧是参数缩减过于严厉的结果,而右侧是无缩减的效果。
方差是可以度量的。如果从鲍鱼数据中取一个随机样本集(例如取其中100个数据)并用线性模型拟合,将会得到一组回归系数。同理,再取出另一组随机样本集并拟合,将会得到另一组回归系数。这些系数间的差异大小也就是模型方差大小的反映1。上述偏差与方差折中的概念在机器学习十分流行并且反复出现。
1. 方差指的是模型之间的差异,而偏差指的是模型预测值和数据之间的差异,请读者注意区分。——译者注
下一节将介绍上述理论的应用:首先从拍卖站点抽取一些数据,再使用一些回归法进行实验来为数据找到最佳的岭回归模型。这样就可以通过实际效果来看看偏差和方差间的折中效果。