
2020-07-20
偏差与方差是我们在机器学习中经常遇到的两个概念,而且在有关机器学习的面试中,偏差与方差也经常拿来考验面试者的机器学习的基础知识。偏差与方差这两者看似简单,但要真正弄清楚两者之间的联系与区别,必须要下大功夫才可以。今天小编就为大家整理、分享偏差与方差的那些联系与区别。希望对大家有所帮助。
一、偏差和方差的概念
机器学习中,当我们用训练数据集去训练一个模型时,一般的做法就是定义一个误差函数,通过将这个误差的最小化过程,以此来提高模型的性能。但是,我们学习一个模型通常是为了解决训练数据集这一领域中的一般化问题,因此单纯地将训练数据集的损失最小化,并不能保证在解决更为一般的问题时,模型仍然是最优的,甚至连保证模型是否可用都不能保证。这个训练数据集的损失,与一般化的数据集的损失之间的差异,也就是泛化误差generalization error。而泛化误差又可以分解为以下三项:
偏差(Biase)、方差(Variance)和噪声(Noise)。
偏差Biase:描述的是所有可能的训练数据集训练出的所有模型的输出的平均值与真实模型的输出值之间的差异。偏差越大,越偏离真实数据,如上图第二行所示。
方差Variance:描述的是不同的训练数据集训练出的模型输出值之间的差异,也就是离其期望值的距离。方差越大,数据的分布越分散,如上图右列所示。
噪声Noise:是学习算法所无法解决的问题,数据的质量决定了学习的上限。假设在数据已经给定的情况下,此时学习的上限已经确定,而这时我们需要做的就是尽可能的接近这个上限。
二、偏差与方差的数学定义
泛化误差
以回归任务为例, 学习算法的平方预测误差期望为:
方差
在一个训练集 D 上模型 f 对测试样本 x 的预测输出为 f(x;D), 那么学习算法 f 对测试样本 x 的 期望预测 为:
上面的期望预测也就是针对 不同 数据集 D, f 对 x 的预测值取其期望, 也被叫做 average predicted。
使用样本数相同的不同训练集产生的方差为:
噪声
噪声为真实标记与数据集中的实际标记间的偏差:
期望预测与真实标记的误差称为偏差(bias), 为了方便起见, 我们直接取偏差的平方:
我们回忆下刚才提到的泛化误差:
现在对该期望泛化误差进行分解:
对最终的推导结果稍作整理:
三、学习曲线
高偏差与高方差
我们通常用使用代价函数J,也就是平方差函数,来评价数据拟合程度好坏。在只关注Jtrain(θ)(训练集误差)的情况下,通常会导致过拟合,因此也必须要关注Jcv(θ)也就是交叉验证集误差。学习曲线 的横轴是样本数,纵轴为 训练集 和 交叉验证集 的 误差。
高偏差:高偏差情况下,Jtrain(θ)和Jcv(θ)误差都很大,并且Jtrain很接近Jcv(θ)。对应欠拟合。
高方差:Jtrain(θ)较小,Jcv(θ)误差很大。对应过拟合。
在实际优化情况下,更多的是对防止过拟合参数λ的调整,λ对应的是正则化系数,λ越大,代表着对过拟合的限制越强。下图就是λ和,Jtrain(θ)和Jcv(θ)理想曲线。
完 谢谢观看
上一篇: 数据分析师的工作职责是什么? ... 下一篇: EXCEL中的数据透视表这个功能如何使用 ...