机器学习

作者: drmeng 分类: 人工智能,随笔 发布时间: 2020-02-19 00:12

我们在训练的时候经常会遇到这两种情况:

1、模型在训练集上误差很大。

2、模型在训练集上误差很小,表现不错,但是在测试集上的误差很大

我们先来分析一下这两个问题:

对于第一个问题,明显就是没有训练好,也就是模型没有很好拟合数据的能力,并没有学会如何拟合,可能是因为在训练时我们选择了较少的特征,或者是我们选择的模型太简单了,不能稍微复杂的拟合数据,我们可以通过尝试选取更多的特征、增加一些多项式特征或者直接选用非线性的较复杂的模型来训练。

对于第二个问题,可以说是第一个问题的另外一个极端,就是模型对训练集拟合的太好了,以至于把训练集数据中的那些无关紧要的特征或者噪音也学习到了,导致的结果就是当我们使用测试集来评估模型的泛化能力时,模型表现的很差。打个不恰当比方就是你平时把作业都背下来了,但是其实你并没有学会如何正确解题,所以遇到考试就考的很差。解决方法就是增加训练集的数据量或者减少特征数量来尝试解决。

第一个问题我们叫做欠拟合(underfitting),第二个问题我们叫做过拟合(overfitting)