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

相信大家在学习K折交叉验证方法(KK-fold Cross-Validation)的时候常常会不理解以下总结:

  • KK值大的时候, 我们会有更少的Bias(偏差), 更多的Variance。
  • KK值小的时候, 我们会有更多的Bias(偏差), 更少的Variance。

首先,我们应该明确何为偏差(Bias)和方差(Variance)以及它们与误差(Error)的关系?

其次,我们应该明确何为KK-fold Cross Validation (K折交叉验证)?

最后,弄清楚KK值对偏差(Bias)和方差(Variance)的影响

下面是我个人觉得写得比较好的文章链接:我将结合这几篇文章进行讲解。
知乎修宇亮的回答

1. 误差(Error)与偏差(Bias)和方差(Variance)的关系

三者关系可以用以下式子表明:

(1)Error=Bias2+Variance+NoiseError = Bias^2 + Variance+Noise\tag1

下面我将对式(1)中的各个参数进行解释:

1.1 什么是偏差(Bias)?

Bias描述的是模型在样本上的输出的结果的期望样本真实结果之间的差距,即模型本身的精准度,即在样本本上的拟合程度。

1.2 什么是方差(Variance)?

Variance描述的是样本上训练出来的模型在测试集上的表现,反映了模型的稳定性,即预测结果的波动情况。

1.3 什么是噪声(Noise)?

这就简单了,就不是你想要的真正数据,你可以想象为来破坏你实验的元凶和造成你可能过拟合的原因之一,至于为什么是过拟合的原因,因为模型过度追求Low Bias会导致训练过度,对测试集判断表现优秀,导致噪声点也被拟合进去了。

下面引用一个简单的例子理解偏差(Bias)和方差(Variance)

例子:开枪问题(来自mrlevo520的简书:链接)

假设你开着一架黑鹰直升机,得到命令去攻击地面上一只敌军部队,于是你连打数十发子弹,结果有以下几种情况:

情况 描述
1 子弹基本上都打在队伍经过的一棵树上了,连在那棵树旁边等兔子的人都毫发无损,这就是方差小(子弹打得很集中),偏差大(跟目的相距甚远)
2 子弹打在了树上,石头上,树旁边等兔子的人身上,花花草草也都中弹,但是敌军安然无恙,这就是方差大(子弹到处都是),偏差大(同1)
3 子弹打死了一部分敌军,但是也打偏了些打到花花草草了,这就是方差大(子弹不集中),偏差小(已经在目标周围了)
4 子弹一颗没浪费,每一颗都打死一个敌军,跟抗战剧里的八路军一样,这就是方差小(子弹全部都集中在一个位置),偏差小(子弹集中的位置正是它应该射向的位置)

1.4 偏差(Bias)与方差(Variance)的关系?

下面这张图可以很好的解释二者的关系

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

假设红心表示真实结果,那么:
我们需要的模型最好是两个L(Low Bias,Low Variance),又准确又稳定。

  • 要想达到Low bias,就得复杂化模型,增加模型的参数,但是那样就会造成过拟合(Over-fitting),使得训练出来的复杂模型不能在(未训练过的)测试集上得到好的效果,造成High Variance。

  • 要想达到Low Variance,就得简化模型,减少模型参数,但是那样就会造成欠拟合(Un-fitting),此时这个简单模型在训练集上的效果不够好,造成High Bias。

因此,Bias和Variance的选择是一个Trad-off的事情。

2. KK-fold Cross Validation (K折交叉验证)

KK折交叉验证思想为:

训练集分成KK组(一般是均分),将每个子集数据分别做一次验证集,其余的(K1K-1)组子集数据作为训练集,这样会得到KK个模型,用这KK个模型最终的验证集的分类准确率平均数作为此K-CV下分类器的性能指标。

KK一般大于等于2,实际操作时一般从3开始取,只有在原始数据集合数据量小的时候才会尝试取2。而K-CV 的实验共需要建立 KK个模型,并计算每个模型在对应验证集上的分类准确率。在实作上,KK要够大才能使各回合中的训练样本数够多,一般而言K=10K=10 (作为一个经验参数)算是相当足够了。

需要注意的是:交叉验证使用验证集来自训练集,即它是训练集中的数据!不是测试集中的数据!

3. KK值对偏差(Bias)和方差(Variance)的影响

KK折交叉验证常用来确定不同类型的模型(线性、指数等)哪一种更好,为了减少数据划分对模型评价的影响,最终选出来的模型类型(线性、指数等)是KK次建模的误差平均值最小的模型。

  • KK较大时,经过更多次数的平均可以学习得到更符合训练样本数据分布的模型(即:任选一个训练集中的样本,此时模型在这个样本上的测试结果趋近于这个样本的真实值),Bias就小了,但是这样一来模型就更加拟合训练数据集,再去测试集上预测的时候预测误差的期望值就变大了(即:模型过于拟合训练数据,对未知的测试数据的适用能力很差,不具有普适性),从而Variance就大了;
  • 反之,KK较小时模型不会过度拟合训练数据,从而Bias较大,但是正因为没有过度拟合训练数据,Variance也较小。

4. 总结

总的来说,当模型由简单到复杂时,偏差(Bias)会变小,方差(Variance)会变大;而当模型由复杂到简单时,偏差(Bias)会变大,方差(Variance)会变小。因此,要同时考虑二者,才能训练出一个准确率高,泛化性能好的模型。

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

参考链接:
机器学习中的Bias(偏差),Error(误差),和Variance(方差)有什么区别和联系?
总结:Bias(偏差),Error(误差),Variance(方差)及CV(交叉验证)
偏差和方差有什么区别?