机器学习

小技巧(一):学习曲线

本文内容根据斯坦福机器学习课程撰写。

在机器学习算法运行的过程中,最常出现的两种异常是欠拟合和过拟合。其中,欠拟合表现为高偏差,即算法在训练集上的效果较差;过拟合表现为高方差,即算法在训练集上效果不错,但在测试集上效果较差。
那么我们怎么判断我们的算法处于哪一种状态呢?这里介绍一种方法——学习曲线。
学习曲线是学习算法的一个很好的合理检验(sanity check)。学习曲线是将训练集误差和交叉验证集误差作为训练集实例数量(m)的函数绘制的图表。
即,如果我们有 100 行数据,我们从 1 行数据开始,逐渐学习更多行的数据。思想是:当训练较少行数据的时候,训练的模型将能够非常完美地适应较少的训练数据,但是训练出来的模型却不能很好地适应交叉验证集数据或测试集数据。随着训练数据的增加,模型对训练数据的拟合程度开始下降,而对测试集的拟合程度却开始增加。
那么我们就可以得出高偏差与高方差两种不同的学习曲线图像。
高偏差
高偏差图像:训练集误差与测试集误差较为接近,但两者均远高于理想误差。
高方差
高方差图像:训练集误差与测试集误差仍有较大距离,两者都在向理想误差逼近。
如上所述,通过绘制训练集与测试集的学习曲线,我们可以快速判断当前算法所处的状态。