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

最近在学习机器学习,在学到交叉验证的时候,有一块内容特别的让我困惑,Error 可以理解为在测试数据上跑出来的 不准确率 ,即为 (1-准确率)。在训…
关注者
2,776
被浏览
661,705
登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏

Error就像一楼说的 = Bias + Variance

通常而言,机器学习会选一个函数空间,这个函数空间可能并不包含最优的函数,这样即使学习出来这个函数空间中损失函数最小的那个也会和真正最优的函数存在差别,这个差别就是Bias。此外,由于我们并不知道训练数据的联合分布p(x,y),当然,知道了就不用学了,可以直接推导出p(y|x)了。所以我们在学习的时候往往是从存在但未知的p(x,y)中随机出训练数据集,因为训练数据集不能无限,这样训练数据的分布和真实的p(x,y)也存在不一致,所以在原来的Bias的基础上又增加了Variance。

以上就是误差的两个来源了。

例如我们要做数据拟合,这里我们假设真实的数据是指数分布,但是我们不知道,所以我们选择使用线性函数去拟合数据,这样函数空间中的模型只有线性模型,和真实的指数分布有差距,选择线性空间的时候带入了Bias。另外,我们只能通过有限的观测点去学习线性模型的参数,有限的观测点来自总体分布的抽样,并不是完全符合总体数据的p(x,y)分布,这就是Variance的来源了。

为了更形象的说明,我们可以这么理解:假设我们要测量一个物体的长度,我们会选一把尺子去测量,这把尺子可能不是百分之百的准确,选择尺子不同会带来Bias。然后我们用尺子测的时候人去估计又会带来误差,这就是所谓的Variance了。

=========5月8日更新=======

下面解释一下Bias、Variance和k-fold的关系:k-fold交叉验证常用来确定不同类型的模型(线性、指数等)哪一种更好,为了减少数据划分对模型评价的影响,最终选出来的模型类型(线性、指数等)是k次建模的误差平均值最小的模型。当k较大时,经过更多次数的平均可以学习得到更符合真实数据分布的模型,Bias就小了,但是这样一来模型就更加拟合训练数据集,再去测试集上预测的时候预测误差的期望值就变大了,从而Variance就大了;反之,k较小时模型不会过度拟合训练数据,从而Bias较大,但是正因为没有过度拟合训练数据,Variance也较小。

但是:Variance的较大还是较小都是相对于Bias来说的,k较大的时候Bias是相对于Variance比较小;k较小的时候Variance是相对于Bias较小。k较小的时候的Vraince还是要大于k较大的时候的Variance的。

不知道这样解释你能否理解?