机器学习_欠拟合和过拟合问题及解决方法

欠拟合和过拟合

机器学习_欠拟合和过拟合问题及解决方法

如上图所示,我们可以直观地看出欠拟合和过拟合的区别:

  1. 模型欠拟合:在训练集以及测试集上同时具有较高的误差,此时模型的偏差较大。
  2. 模型过拟合:在训练集上具有较低的误差,在测试集上具有较高的误差,此时模型的方差较大。
  3. 模型正常:在训练集以及测试集上,同时具有相对较低的偏差以及方差。

机器学习_欠拟合和过拟合问题及解决方法

上图横轴为模型复杂度,纵轴为误差。

红线为测试集上的Error,蓝线为训练集上的Error。

  1. 模型欠拟合:模型在点A处,在训练集以及测试集上同时具有较高的误差,此时模型的偏差较大。
  2. 模型过拟合:模型在点C处,在训练集上具有较低的误差,在测试集上具有较高的误差,此时模型的方差较大。
  3. 模型正常:模型复杂度控制在B点处为最优。

机器学习_欠拟合和过拟合问题及解决方法

上图横轴为正则项系数,纵轴为误差。

红线为测试集上的Error,蓝线为训练集上的Error。

  1. 模型欠拟合:模型在点C处,在训练集以及测试集上同时具有较高的误差,此时模型的偏差较大。
  2. 模型过拟合:模型在点A处,在训练集上具有较低的误差,在测试集上具有较高的误差,此时模型的方差较大。它通常发生在模型过于复杂的情况下,如参数过多等,会使得模型的预测性能变弱,并且增加数据的波动性。虽然模型在训练时的效果可以表现的很完美,基本上记住了数据的全部特点,但这种模型在未知数据的表现能力会大减折扣,因为简单的模型泛化能力通常都是很弱的。
  3. 模型正常:模型复杂度控制在B点处为最优。

如何解决欠拟合:

  1. 添加其他特征项。组合、泛化、相关性、上下文特征、平台特征等特征是特征添加的重要手段,有时候特征项不够会导致模型欠拟合。
  2. 添加多项式特征。例如将线性模型添加二次项或三次项使模型泛化能力更强。
  3. 可以增加模型的复杂程度。
  4. 减小正则化系数。正则化的目的是用来防止过拟合的,但是现在模型出现了欠拟合,则需要减少正则化参数。

如何解决过拟合:

  1. 重新清洗数据,数据不纯会导致过拟合,此类情况需要重新清洗数据。
  2. 增加训练样本数量。
  3. 降低模型复杂程度。
  4. 增大正则项系数。
  5. 采用dropout方法,dropout方法就是在训练的时候让神经元以一定的概率失活。
  6. 提前截断(early stopping)。
  7. 减少迭代次数。
  8. 增大学习率。
  9. 添加噪声数据。
  10. 树结构中,可以对树进行剪枝。
  11. 减少特征项。