2.14 欠拟合与过拟合
欠拟合:顾名思义,就是没有拟合好,要么没有很好的收敛,要么模型容量太小,无法收敛到一个满意的解。
过拟合:顾名思义,就是拟合过头了,记住了训练集的样本,对于验证集和测试集的效果很差。
- 模型欠拟合:在训练集以及测试集上同时具有较高的误差,此时模型的偏差较大;
- 模型过拟合:在训练集上具有较低的误差,在测试集上具有较高的误差,此时模型的方差较大。
- 模型正常:在训练集以及测试集上,同时具有相对较低的偏差以及方差。
- 模型欠拟合:模型在点A处,在训练集以及测试集上同时具有较高的误差,此时模型的偏差较大。
- 模型过拟合:模型在点C处,在训练集上具有较低的误差,在测试集上具有较高的误差,此时模型的方差较大。
- 模型正常:模型复杂程度控制在点B处为最优。(其实可以对应early-stop)
- 模型欠拟合:模型在点C处,在训练集以及测试集上同时具有较高的误差,此时模型的偏差较大。
- 模型过拟合:模型在点A处,在训练集上具有较低的误差,在测试集上具有较高的误差,此时模型的方差较大。 它通常发生在模型过于复杂的情况下,如参数过多等,会使得模型的预测性能变弱,并且增加数据的波动性。虽然模型在训练时的效果可以表现的很完美,基本上记住了数据的全部特点,但这种模型在未知数据的表现能力会大减折扣,因为简单的模型泛化能力通常都是很弱的。
- 模型正常:模型复杂程度控制在点B处为最优。
那么面对欠拟合和过拟合,应该怎么做呢?
欠拟合:
- 添加其他特征项。
组合、泛化、相关性、上下文特征、平台特征等特征是特征添加的重要手段,有时候特征项不够会导致模型欠拟合。 - 添加多项式特征。
例如将线性模型添加二次项或三次项使模型泛化能力更强。例如,FM(Factorization Machine)模型、FFM(Field-aware Factorization Machine)模型,其实就是线性模型,增加了二阶多项式,保证了模型一定的拟合程度。 - 可以增加模型的复杂程度。
- 减小正则化系数。
正则化的目的是用来防止过拟合的,但是现在模型出现了欠拟合,则需要减少正则化参数。
过拟合:
- 重新清洗数据,数据不纯会导致过拟合,此类情况需要重新清洗数据。
- 增加训练样本数量。
- 降低模型复杂程度。
- 增大正则项系数(与欠拟合相反)。
- 采用dropout方法,dropout方法,通俗的讲就是在训练的时候让神经元以一定的概率不工作。
- early stopping。
- 减少迭代次数。
- 增大学习率。
- 添加噪声数据。
- 树结构中,可以对树进行剪枝。
- 减少特征项。
欠拟合和过拟合这些方法,需要根据实际问题,实际模型,进行选择。(这个就和经验有关系了)
网友评论