一、偏差(bias)和方差(variance)的含义
(1)泛化误差可以分解成偏差的平方加上方差加上噪声。偏差度量了学习算法的期望预测和真实结果的偏离程度,刻画了学习算法本身的拟合能力,方差度量了同样大小的训练集的变动所导致的学习性能的变化,刻画了数据扰动所造成的影响,噪声表达了当前任务上任何学习算法所能达到的期望泛化误差下界,刻画了问题本身的难度;
(2)偏差和方差一般称为bias和variance,一般训练程度越强,偏差越小,方差越大,泛化误差一般在中间有一个最小值,如果偏差较大,方差较小,此时一般称为欠拟合,而偏差较小,方差较大称为过拟合;
(3)偏差(bias)和方差(variance)的常见解释:
● 解释1
bias 偏差 :模型的期望(或平均)预测和正确值之间的差别;
variance 方差 :模型之间的多个拟合预测之间的偏离程度。
● 解释2:
bias和variance分别从两个方面来描述了我们学习到的模型与真实模型之间的差距;
bias是 “用所有可能的训练数据集训练出的所有模型的输出的平均值” 与 “真实模型”的输出值之间的差异;
variance则是“不同的训练数据集训练出的模型”的输出值之间的差异。
● 解释3:
首先 Error = bias + variance
Error反映的是整个模型的准确度,bias反映的是模型在样本上的输出与真实值之间的误差,即模型本身的精准度,variance反映的是模型每一次输出结果与模型输出期望之间的误差,即模型的稳定性;
更准确地讲Error分成3个部分:Error = bias + variance + noise;
(4)解决bias和variance问题的方法:高偏差,解决方案: Boosting、复杂模型(非线性模型、增加神经网络中的层)、增加特征 等;
高方差,解决方案: Bagging、简化模型、降维等。
二、如何根据偏差bias和方差variance对模型进行分析和改善
1、理想情况下,我们希望得到一个偏差和方差都很小的模型,但实际上往往很困难;
2、模型评估方法
(1)留出法Hold-out
(2)交叉验证法Cross-validation
(3)自助法Bootstrapping
(4)参数调节(调参)
3、性能度量
(1)错误率与精度
(2)查准率、查全率与F1-Score
(3)ROC与AUC
4、通过实验估计学习算法的泛化性能,同时也可以通过“偏差-方差分解”来解释学习算法的泛化性能;偏差度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力;方差度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响;噪声则表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度;
5、“偏差-方差分解”说明,泛化性能是由学习算法的能力、数据的充分性以及学习任务本身的难度所共同决定的。给定学习任务,为了取得好的泛化性能,则需使偏差较小,即能够充分拟合数据,并且使方差较小,即使得数据扰动产生的影响小;
6、一般来说,偏差与方差是有冲突的,这称为“偏差-方差窘境”。假定我们能控制学习算法的训练程度,则在训练不足时,学习器的拟合能力不够强,训练数据的扰动不足以便学习器产生显著变化,此时“偏差”主导了泛化错误率;随着训练程度的加深,学习器的拟合能力逐渐增强,训练数据发生的扰动渐渐能被学习器学到,“方差”逐渐主导了泛化错误率;在训练程度充足后,学习器的拟合能力已非常强,训练数据发生的轻微扰动都会导致学习器发生显著变化,若训练数据自身的、非全局的特性被学习器学到了,则将发生“过拟合”。
关联概念
经验误差(训练误差)、欠拟合、过拟合、模型评估与选择、训练集、验证集
注意点:
1、我们通常把学习得到的模型在实际使用中所遇到的数据称为“测试数据”!
2、模型评估与选择中用于评估测试的
数据集称为“验证集”!
3、在研究对比不同算法的泛化性能时,我们常用“测试集”上的判别效果来估计模型在实际使用时的泛化能力,而把“训练数据”另外划分为“训练集”和“验证集”,基于验证集上的性能来进行模型选择和调参!








暂无数据