如何理解过拟合=高方差、欠拟合=高偏差

欠拟合=高偏差还好理解一些,一直不太明白过拟合和高方差有什么关系,那么我们首先就要理解各种 ‘差’ 的定义

定义:

我们评价一个模型好不好,是通过测试集的数据来评价的,而不是训练集或者交叉验证集,如果在测试集上预测数据表现得不好,那么我们就说这个训练出来的模型有很大的误差。
那么误差来自于哪里呢?
误差 = 偏差 + 方差
在不写出这个式子时,很多人可能不会察觉误差和偏差有什么区别?因此总是想当然的认为误差和偏差是一个东西,这样就会造成我们无法理解方差是什么?
误差:在测试集上,预测值和实际值之间存在的差距。

 图1
图中红点表示输入一个样本x,其真实的输出值y,即我们希望输出的目标,而蓝点表示我们实际预测出来的输出值,注意,所有蓝点的输入样本都是同一个x,那么为什么会得出不同的预测值呢?因为这里代表的是:我们使用了不同的训练集(从所有样本中选出不同的训练集)得出了不同的参数theta(即N个不同的训练模型),导致最终的预测值有区别。
解释完这些,再定义偏差和方差。
偏差: 偏差是衡量预测值和真实值的关系。即N次预测的平均值(也叫期望值),和实际真实值的差距。所以偏差bias=E(p(x)) - f(x)。
方差: 方差用于衡量预测值之间的关系,和真实值无关。即对于给定的某一个输入,N次预测结果之间的方差。variance= E((p(x) - E(p(x)))^2),反映的是不同训练模型之间对同一个输入样本x的预测值的离散程度。

  • 在模型复杂度比较低时,会出现欠拟合的现象,那么此时使用不同的 ‘训练集’ 训练出多个 ‘训练模型’,由于没有很好的拟合图像,就会使E(p(x)) 和实际y偏差很大,导致高偏差。
  • 在模型复杂度高时,出现过拟合的现象,那么此时使用不同的 ‘训练集’ 训练出多个 ‘训练模型’,只能适应该训练集的数据,而不能适应测试集的数据,导致同一个输入对于不同的训练模型输出的数据比较离散,从而方差较大

一般来说,方差、偏差、模型复杂度有以下关系:
 图2
那么对于四张打靶图的情况在线性回归中是否都有可能出现呢?

首先对于第一张图,low bias\low variance是我们最希望得到的,它对应着图2中的交点,自然说明此时我们的模型非常好,因此可能会出现
对于第二张图,此时则考虑出现过拟合的情况,即方差较大,偏差较小,可能出现
对于第三张图,此时则考虑出现欠拟合的情况,即方差较小,偏差较大,可能出现
对于第四张图,方差偏差都很大,则说明我们的训练模型完全在瞎猜输出值,这种情况一般在线性回归的训练中不会出现。

猜你喜欢

转载自blog.csdn.net/tiaochewang219/article/details/107631221