机器学习,什么是过拟合和欠拟合

一、过拟合

机器学习中我们评价Model好坏一个重要指标就是泛化能力。如果模型在训练集合中表现很差,在测试集合中表现很差,我们就称之为欠拟合(Underfitting)模型在数据的训练集合中表现良好,在测试数据中也表现的良好。如果只是在训练数集中表现好,但在测试中表现不好,我们就称为过拟合(Overfitting)

比如我们通过学习身高和体重的数据建立一个模型,你给我一个体重模型预测出一个人的身高。

机器学习,什么是过拟合和欠拟合机器学习,什么是过拟合和欠拟合 

如图,我们知道了一堆的身高和体重的数据。我们先将数据分为两部分,一部分是Train Set(绿点),另一部分是Test Set(蓝点)。我们不知道选什么模型好,我们先尝试最简单的线性回归(Linear Regression),显然,这并不是一个好的选择,因为当体重超过一定值的时候,身高就不长了。此时,线性回归模型无法有效捕获数据特征。我们称为欠拟合(Overfitting)。这种模型的Inability 我们称为Bias,即模型真实输出和期望输出之间的差值。我们可以看到,一个模型的Bias越小越好。

 显然我们的模型需要更多的灵活性,我们再选择一个Squggile Line模型,他具有高度的灵活性很好的拟合了Train Set中的数据。但是在Test Set中表现不佳,还不如直线拟合模型的表现,Variance很大。这说明这个模型在不同的训练集合下,结果波动的范围太大。Variance 刻画了不同训练集得到的模型的输出与这些模型期望输出的差异。Squggile Line在训练集表现好,但在检测集表现不好,我们就称之为过拟合(Overfitting)

机器学习,什么是过拟合和欠拟合机器学习,什么是过拟合和欠拟合

 Bias 和 Vairance的变化对与模型的影响我们可以根据下面总结的非常美的一张图看出:

机器学习,什么是过拟合和欠拟合

图片来源:Scott Fortman Roe's  blog post on the bias-variance tradeoff 

 模型处于过拟合还是欠拟合,可以通过画出误差趋势图来观察。若模型在训练集与测试集上误差均很大,则说明模型的 Bias 很大,即欠拟合 ;若是训练误差与测试误差之间有个很大的 Gap ,则说明模型的 Variance 很大,即过拟合。 

机器学习,什么是过拟合和欠拟合 

图片来源:https://zhuanlan.zhihu.com/p/29707029 

 

 

 

 

上一篇:归纳偏置


下一篇:李宏毅机器学习(二)