机器学习中的Bias(偏差),Error(误差),和Variance(方差)有什么区别和联系?

MachineLP的Github(欢迎follow):https://github.com/MachineLP

首先 Error = Bias + Variance + Noise
Error反映的是整个模型的准确度,Bias反映的是模型在样本上的输出与真实值之间的误差,即模型本身的精准度,Variance反映的是模型每一次输出结果与模型输出期望之间的误差,即模型的稳定性。

机器学习中的Bias(偏差),Error(误差),和Variance(方差)有什么区别和联系?_第1张图片

我是这样抽象理解这个问题的: 

:bias描述的是根据样本拟合出的模型的输出预测结果的期望与样本真实结果的差距,简单讲,就是在样本上拟合的好不好。要想在bias上表现好,low bias,就是复杂化模型,增加模型的参数,但这样容易过拟合 (overfitting),过拟合对应上图是high varience,点很分散。low bias对应就是点都打在靶心附近,所以瞄的是准的,但手不一定稳。 

:varience描述的是样本上训练出来的模型在测试集上的表现,要想在varience上表现好,low varience,就要简化模型,减少模型的参数,但这样容易欠拟合(unfitting),欠拟合对应上图是high bias,点偏离中心。low varience对应就是点都打的很集中,但不一定是靶心附近,手很稳,但是瞄的不准。

所以bias和variance的选择是一个tradeoff,过高的varience对应的概念,有点『剑走偏锋』『矫枉过正』的意思,如果说一个人varience比较高,可以理解为,这个人性格比较极端偏执,眼光比较狭窄,没有大局观。而过高的bias对应的概念,有点像『面面俱到』『大巧若拙』的意思,如果说一个人bias比较高,可以理解为,这个人是个好好先生,谁都不得罪,圆滑世故,说话的时候,什么都说了,但又好像什么都没说,眼光比较长远,有大局观。

注:关于这个偏执和好好先生的表述,不是非常严谨,对这两个词的不同理解会导致截然相反的推理,如果你看完这段觉得有点困惑,可以去看评论区的讨论,不得不感叹一下,在准确描述世界运行的规律这件事上,数学比文学要准确且无歧义的多。

在林轩田的课中,对bias和variance还有这样一种解释,我试着不用数学公式抽象的简单概括一下: 

我们训练一个模型的最终目的,是为了让这个模型在测试数据上拟合效果好,也就是Error(test)比较小,但在实际问题中,test data我们是拿不到的,也根本不知道test data的内在规律(如果知道了,还machine learning个啥 ),所以我们通过什么策略来减小Error(test)呢? 

分两步: 

让Error(train)尽可能小 

让Error(train)尽可能等于Error(test) 

三段论,因为A小,而且A=B,这样B就小。 

那么怎么让Error(train)尽可能小呢?——》把模型复杂化,把参数搞得多多的,这个好理解,十元线性回归,肯定error要比二元线性回归低啊。——》low bias 

然后怎么让Error(train)尽可能等于Error(test)呢?——》把模型简单化,把参数搞得少少的。什么叫Error(train)=Error(test)?就是模型没有偏见,对train test一视同仁。那么怎样的模型更容易有这这种一视同仁的特性,换句话说,更有『通用性』,对局部数据不敏感?那就是简单的模型。——》low varience

机器学习中的Bias(偏差),Error(误差),和Variance(方差)有什么区别和联系?_第2张图片

如果帮到你了,请赞赏支持:

机器学习中的Bias(偏差),Error(误差),和Variance(方差)有什么区别和联系?_第3张图片

你可能感兴趣的:(机器学习)