最近听机器学习课程时听到这三个概念一开始有点模糊。感觉没理解透,所以自己又查了点资料,消化了一下,然后做了个笔记。
首先三者之间的联系是 Error = Bias + Variance(这里应该是忽略的噪音)。Error反映的是整个模型的准确度,说白了就是你给出的模型,input一个变量,和理想的output之间吻合程度,吻合度高就是Error低。Bias反映的是模型在样本上的输出与真实值之间的误差,即模型本身的精准度,其实Bias在股票上也有应用,也可以反映股价在波动过程中与移动平均线偏离程度(乖离率),炒股的朋友应该知道均线的概念。其实通过这个我感觉可以更容易的理解这个概念,我们知道Bias是受算法模型的复杂度决定的,假设下图的红线是我们给出的模型,蓝色的点就是样本,这是一个最简单的线性模型,这个时候Bias就可以通过这些蓝色的点到红线沿Y轴的垂直距离来反映(即真实值与模型输出的误差),距离越大说明Bias越大,也说明拟合度更低。
当我们增加模型的复杂度,刚刚是一个线性的模型,现在是一个四次方的模型,可以明显看出点到模型的沿Y轴的垂直距离更少了,即拟合度更高了,所以Bias也更低了。所以这样我们就可以很容易理解Bias和模型复杂度之间的关系了。给出结论:当模型复杂度上升时,Bias减小。当模型复杂度降低时,Bias增加。这里就涉及到了欠拟合(unfitting)和过度拟合(overFitting)的问题了。好了,接下来让我们看看Variance(方差)的定义。
Variance(方差)反映的是模型每一次输出结果与模型输出期望之间的误差,即模型的稳定性。在概率论和统计学中方差是衡量随机变量或一组数据时离散程度的度量。下图中红线就是每一组样本对应的模型,想象一下真实数据有无限多,我们以10个样本为一组,选取了500个样本组,然后在线性模型下,针对这500个样本组,我们会有500组不同的b和w值组成的线性模型,最后构成左图的样子。当我们的模型升级成5次方的复杂程度时,针对这500个样本组,我们会有右边这张图显示的500组不同的参数构成的模型。可以看出,明显右边的图比左边的图更离散一些,试想一个极端情况,当模型就是一个常数时,这个时候模型复杂度最低,同时Variance也为0。所以我们可以得出结论:当模型复杂度低时,Variance更低,当模型复杂度高时,Variance更高。
到这里我们可以给出两个结论。
一、Bias和模型复杂度的关系:当模型复杂度上升时,Bias减小。当模型复杂度降低时,Bias增加。(反比关系)
二、Variance和模型复杂度的关系:当模型复杂度低时,Variance更低,当模型复杂度高时,Variance更高。(正比关系)
一开始我们就知道Error = Bias + Variance。整个模型的准确度和这两个都有关系,所以这下看似是有些矛盾的。如何才能取到最小的Error呢,看下图,蓝线就是Error的伴随Bias和Variance的变化情况,可以看出横坐标3应该是一个较好的结果。所以我们需要找到一个平衡点取得最优解。
实际情景中我们怎么判断自己的模型是Bias大还是Variance大呢,这个就要看到底是你的模型无法尽量大的拟合你的样本还是你的模型高度拟合你的样本但是用测试数据算时误差右很大。前者就是应该bias大导致的,也就是模型复杂度太低导致的。后者就是因为模型复杂度高导致Variance高导致的。
以上就是我对Bias(偏差),Error(误差),和Variance(方差)的一些简单理解,图全是截取自李宏毅的PPT中。