我们先拿出 5 个点来作为训练集,按直线、二次曲线、四次曲线分别做拟合:
目前看来,二次和四次都差不多嘛。这时候,教科书告诉我们:四次曲线过拟合了。可为什么?!!!拟合得好,有!错!吗!
呃~~让我们把剩下 5 个点画出来:
可以看到:二次曲线拟合得非常好,而直线(欠拟合)和四次曲线(过拟合)对训练集之外的点都偏离得厉害。
我们可以算算三条曲线的偏差平方和:
曲线 | 前 5 个点的偏差平方和 | 后 5 个点的偏差平方和 |
---|---|---|
直线 | 9.63 | 5510.6 |
二次曲线 | 0.04 | 55.6 |
四次曲线 | 5.7×10^(-28) | 73688. |
看,不是拟合得好有问题,问题是对新数据不适应。
从上面这个例子我们可以看到,误差分为两部分:一部分来自对现有训练集的匹配误差,另一部分是对数据总体中其他数据(还未纳入训练的数据)的匹配误差。前者是对「现在」的评估(bias),后者是对「未来」的预估(variance)。所谓的最佳拟合就是在这两者之间取舍。