高偏差和高方差

首先我来介绍一下高方差和高偏差的概念,可能很多人理解的不是很清楚。

偏差:描述的是预测值和真实值之间的偏差。偏差越大,预测值越偏离真实值。偏差衡量模型的预测能力,对象是一个模型,形容这个模型对真实值的预测能力。

方差:描述的是预测值的变化范围,离散程度,也就是离其期望值的距离。方差越大,预测结果数据的分布越散。方差用于衡量预测值之间的关系,和真实值无关。对象是多个模型,表示选取不同的训练集,得出的模型之间的差异性。

记住:方差和偏差都是衡量模型的,方差表示选取不同的训练集,训练出模型的差异有多大,而偏差是指一个模型预测值和真实值之间的偏差。

假设上面打靶图中的红点是真实值,每一个蓝色的点代表了一个根据不同的训练集训练出一个训练模型的预测数据,就是选取不同的训练集,训练出不一样的模型(不一样的模型指的是假设的模型结构一样,但是选取不同的训练集,训练出不同的模型参数,例如:模型都是y=ax^3+bx+c,但是选取不同的训练集,模型1:y=0.5x^3+2x+3,模型2:y=x^3+5x+2),每一个蓝点代表某一个训练模型对红点的预测值,这样说就很容易理解力吧。

分析上面的四幅图,左上是低偏差,低方差,因为首先每个模型预测的点都相距很近,所以选取不同的训练集,预测出他们模型之间的差异比较小,所以每个模型的方差比较低,其次对于每一个的模型,他们预测的值和红点之间的距离很近,准确率很高,偏差很小,所以他们是低偏差的。右上是低偏差,高方差,因为首先每个模型预测的点都相距很离散,所以选取不同的训练集,预测出他们模型之间的差异比较大,所以每个模型的方差比较高,其次对于每一个的模型,他们预测的值准确率很高,结果比较集中,偏差比较小,所以他们是低偏差的。左下是高偏差,低方差,因为首先每个模型预测的点都相距很近,所以选取不同的训练集,预测出他们模型之间的差异比较小,所以每个模型的方差比较小,其次对于每一个的模型,他们预测的值准确率很差,离红心点比较远,偏差比较大,所以他们是高偏差的。右下是高偏差,高方差,因为首先每个模型预测的点都相距很离散,所以选取不同的训练集,预测出他们模型之间的差异比较大,所以每个模型的方差比较大,其次对于每一个的模型,他们预测的值准确率很差,离红心点比较远,偏差比较大,所以他们是高偏差的。

再用一个简单的例子说明一下

左上中选取模型结构y=ax+b,不管选取什么训练集,他们预测出的直线的每个参数是差距不大的,所以说是低方差的,但是对于上面红线这一个参数已知的模型,预测出来的结果和真实的结果差距较大,所以它是高偏差的。右上的是拟合度刚刚合适。右下的模型真实值和预测值之间的偏差平均最小,所以右下的模型偏差很低,但是对于不同的训练集,他们训练出的模型参数差距是比较大的,如下图所示,

所以说,右下的方差比较大。

吴恩达老师(Andrew)在机器学习的课程中讲解了偏差和方差,在这儿我总结一下。

当你的训练误差和交叉验证误差或测试误差都很大,且值差不多时,是处于高偏差,低方差,欠拟合状态,需要增加多项式的次数来解决。

当你的训练误差和交叉验证误差差距很大,且测试集误差很小,验证误差很大,是处于低偏差,高方差,过拟合状态,需要减少多项式的次数或者利用正则化来解决。如下图所示:

利用正则化防止过拟合时,正则化参数\lambda的选择需要注意,过大或者过小都不合适。

参考文章:https://www.jianshu.com/p/a585d5506b1e

                  https://blog.csdn.net/u010626937/article/details/74435109

猜你喜欢

转载自blog.csdn.net/youhuakongzhi/article/details/85258772