1. 偏差(bias)造成的误差(error) - 准确率和欠拟合
如前所述,如果模型具有足够的数据,但因不够复杂而无法捕捉基本关系,则会出现偏差。这样一来,模型一直会系统地错误表示数据,从而导致预测准确率降低。这种现象叫做欠拟合(underfitting)。
简单来说,如果模型不适当,就会出现偏差。举个例子:如果对象是按颜色和形状分类的,但模型只能按颜色来区分对象和将对象分类(模型过度简化),因而一直会错误地分类对象。
或者,我们可能有本质上是多项式的连续数据,但模型只能表示线性关系。在此情况下,我们向模型提供多少数据并不重要,因为模型根本无法表示其中的基本关系,我们需要更复杂的模型。那是不是拟合程度越高越好呢?也不是,因为还会有方差。
2. 方差(variance)造成的误差 - 精准度和过拟合
方差就是指模型过于贴近训练数据,以至于没办法把它的结果泛化(generalize)。而泛化是正事机器学习要解决的问题,如果一个模型只能对一组特定的数据有效,换了数据就无效了,我们就说这个模型过拟合。
如前所述,如果模型具有足够的数据,但因不够复杂而无法捕捉基本关系,则会出现偏差。这样一来,模型一直会系统地错误表示数据,从而导致预测准确率降低。这种现象叫做欠拟合(underfitting)。
简单来说,如果模型不适当,就会出现偏差。举个例子:如果对象是按颜色和形状分类的,但模型只能按颜色来区分对象和将对象分类(模型过度简化),因而一直会错误地分类对象。
或者,我们可能有本质上是多项式的连续数据,但模型只能表示线性关系。在此情况下,我们向模型提供多少数据并不重要,因为模型根本无法表示其中的基本关系,我们需要更复杂的模型。那是不是拟合程度越高越好呢?也不是,因为还会有方差。
2. 方差(variance)造成的误差 - 精准度和过拟合
方差就是指模型过于贴近训练数据,以至于没办法把它的结果泛化(generalize)。而泛化是正事机器学习要解决的问题,如果一个模型只能对一组特定的数据有效,换了数据就无效了,我们就说这个模型过拟合。
- 准:bias描述的是根据当前样本拟合出的模型的输出预测结果与样本真实结果的差距,简单讲,就是在样本上拟合的好不好。要想在bias上表现好,low bias,就是复杂化模型,增加模型的参数,但这样容易过拟合 (overfitting),过拟合对应上图是high varience,点很分散。low bias对应就是点都打在靶心附近,所以瞄的是准的,但手不一定稳。
- 确:varience描述的是样本上训练出来的模型在测试集上的表现,要想在varience上表现好,low varience,就要简化模型,减少模型的参数,但这样容易欠拟合(unfitting),欠拟合对应上图是high bias,点偏离中心。low varience对应就是点都打的很集中,但不一定是靶心附近,手很稳,但是瞄的不准。
在林轩田的课中,对bias和variance还有这样一种解释,我试着不用数学公式抽象的简单概括一下:
我们训练一个模型的最终目的,是为了让这个模型在测试数据上拟合效果好,也就是Error(test)比较小,但在实际问题中,test data我们是拿不到的,也根本不知道test data的内在规律(如果知道了,还machine learning个啥 ),所以我们通过什么策略来减小Error(test)呢?
分两步:
- 让Error(train)尽可能小
- 让Error(train)尽可能等于Error(test)
那么怎么让Error(train)尽可能小呢?——》把模型复杂化,把参数搞得多多的,这个好理解,十元线性回归,肯定error要比二元线性回归低啊。——》low bias
然后怎么让Error(train)尽可能等于Error(test)呢?——》把模型简单化,把参数搞得少少的。什么叫Error(train)=Error(test)?就是模型没有偏见,对train test一视同仁。那么怎样的模型更容易有这这种一视同仁的特性,换句话说,更有『通用性』,对局部数据不敏感?那就是简单的模型。——》low varience