衡量一个机器学习模型的性能,可以用偏差和方差作为依据。
一个高偏差的模型,总是会对数据分布做出强假设,比如线性回归。而一个高方差的模型,总是会过度依赖于它的训练集,例如未修剪的决策树。我们希望一个模型的偏差和方差都很低,但更多情况下我们需要在二者之间做出权衡。
在选择和调整模型时,“偏差-方差权衡”是一个非常有用的概念。当然它在一般情况下是无法直接计算的,因为这需要这一问题领域内的全部知识,而我们并不具备。尽管如此,我们可以评估出一个模型的误差,并将其拆分成偏差和方差两部分,从而借此了解该模型的运行方式。
……………………………………………
偏差、方差、不可约误差
机器学习模型是用来做预测任务的,例如回归或分类。
一个模型预测性能可以用对未参与训练的样本做预测后的误差来表示,我们将其视作是模型误差。
误差(模型):
模型误差可以被分解为三个部分:模型的方差、模型的偏差以及不可约误差的方差。
误差(模型):
误差(模型)= 方差(模型)+ 偏差(模型)+ 方差(不可约误差)
让我们仔细看看这三个术语。
模型偏差
偏差用于衡量一个模型拟合的输入和输出之间关系与真实情况的近似程度。
这能获得模型的刚度:模型对于输入和输出之间的函数的假设强度。
“这能够反映出模型的拟合结果与真实规律之间的差距。” ——《预测模型应用》2013年版,97页
当偏差符合未知的真实规律时,我们可以接受具有高偏差的预测模型。但是,当真实数据函数形式与模型的假设完全不匹配时,例如对一个高度非线性关系的数据使用线性关系的假设,具备过高偏差的模型是毫无用处的。
- 低偏差:关于对输入到输出映射函数形式的弱假设。
- 高偏差:关于对输入到输出映射函数形式的强假设。
偏差一定是正值。
模型方差
模型的方差是模型在拟合不同的训练数据时性能的变化大小。它反映特定数据对模型的影响。
“方差指的是,用不同训练数据进行模型评估时,模型表现的变化程度。” ——《统计学习及其在R中的应用》2014年版,第34页
一个高方差的模型在训练数据集发生细小变化时预测结果会发生很大变化。相反,对于低方差的模型,训练数据发生或大或小的改变时,预测结果的变化都很小。
- 低方差:训练数据集的变化对于模型来说影响很小。
- 高方差:训练数据集的变化对于模型来说影响很大。
方差一定是正值。
不可约误差
整体而言,模型的误差包含可约误差和不可约误差。
模型误差 = 可约误差 + 不可约误差
可约误差是我们可以去优化的成分。在模型通过学习训练集后这一数值会下降,我们会努力让这一数值尽可能地接近于零。
不可约误差是我们无法从模型中剔除的误差,在任何模型中都不可能被去除。
这一误差源于不可控因素,