欠拟合、过拟合、偏差、方差

1. 基本概念

  • 偏差:偏差度量了学习算法的期望预测与真实结果的偏离程度, 即刻画了学习算法本身的拟合能力
  • 方差:方差度量了同样大小的训练集的变动所导致的学习性能的变化, 即刻画了数据扰动所造成的影响
  • 欠拟合:模型的经验误差大,模型太简单,在训练的过程中基本没学到有价值的内容,说明模型欠拟合。
  • 过拟合:模型学习了太多的训练样本的“个性”(经验误差小),但是对于未知的样本泛化能力差(泛化误差大),说明过拟合。
  • 经验误差:模型关于训练样本集的平均误差(也称经验风险)。
  • 结构风险:结构风险在经验风险的基础上加上表示模型复杂度的正则化项
  • 泛化误差:模型在新样本集(测试集)上的平均误差。
  • 泛化误差=偏差+方差+噪声
  • 噪声:描述了在当前任务上任何学习算法所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度

偏差和方差

如果模型是低偏差和低方差,那肯定是最好的一个选择。但是偏差和方差在一定程度上是矛盾的。如果偏差降低,那方差可能会相应的升高,如果方差降低,那偏差可能相应升高。所以我们是尽量的寻求偏差和方差的一个平衡点。

下图比较形象的表达偏差和方差的含义。
image

个人理解:偏差太大,说明模型欠拟合;方差太大,说明模型过拟合。

2. 欠拟合和过拟合

2.1 学习曲线

通过学习曲线来识别模型是否发生了欠拟合、过拟合

横轴为训练样本数量,纵轴为误差
image

2.2 复杂程曲线

横轴为模型复杂程度,纵轴为误差
image
上图中:模型在点A处,在训练集以及测试集上同时具有较高的误差,此时模型的偏差较大,模型欠拟合;模型在点C处,在训练集上具有较低的误差,在测试集上具有较高的误差,此时模型的方差较大,模型过拟合。模型复杂程度控制在点B处为最优。

3. 如何解决欠拟合和过拟合

3.1 解决欠拟合

  1. 增加特征项。
  2. 添加多项式特征项。
  3. 减小正则化系数。
  4. 增加模型复杂度。

3.2 解决过拟合

过拟合问题是机器学习和深度学习里面主要要解决的一个问题。解决过拟合的办法主要有一下列出的。

  1. 重新做特征工程。
  2. 增加训练样本数量。
  3. 降低模型复杂程度。
  4. 增大正则项系数。
  5. 采用dropout方法。
  6. early stoping。
  7. 减少迭代次数。
  8. 增大学习率。
  9. 添加噪声数据。
  10. 树结构中,可以对树进行剪枝。
    以上只是举一些例子,不同的问题还是需要根据不同的情况分析。
posted @ 2018-09-21 13:33  hyc339408769  阅读(7183)  评论(0编辑  收藏  举报