这个概念纠结了一天多,之前也看过,但是感觉还是没有理解本质。
今天又重新看了下斯坦福的视频,写点自己的理解:
机器学习中我们一般都是样本x和标签y,目的是学出一个函数y=f(x)。
这个f(x)是关键,斯坦福的课程里面是这么说,如果训练样本少了,导致f(x)过于简单,叫欠拟合
如果训练样本太多,导致f(x)过于复杂,这样叫做过拟合。
其实这个概念我个人感觉是相对的,过拟合是说f(x)在训练样本上拟合的很好,但是在测试样本上很差
这个叫过拟合,因为他过分拟合了训练样本。
那么欠拟合呢?个人这么理解,f(x)本身对训练样本拟合的就不好,那么在测试样本上同样也造成了很大错误,
那么这个叫欠拟合。
我们继续想,如果一个f(x)对训练样本拟合的很好,同样他也很复杂,但是她对测试样本同样测试的结果很好,
那么他就不叫过拟合,这应该是一个完美的决策函数。
同样的,如果f(x)因为训练样本少,函数很简单,但是她在测试样本上也得到了好的结果,那么同样是一个完美的决策函数。
不存在什么过拟合,欠拟合。
所以我想来想去,感觉应该这么理解,如果f(x) 在大量的测试样本中没有取得很好的结果。也就是误差很大。
但是f(x)在训练样本上结果很好,那么这个是过拟合,过分拟合了训练样本。同样,f(x)在训练样本上拟合的也一般
或者是误差也大,那么就叫欠拟合。
如果这么说,如果f(x) 在大量的测试样本中没有取得很好的结果。那么这个f(x)对测试样本,或者是真实的样本,都应该算欠拟合。
因为拟合的都不好吗。
不知道我这个理解是不是正确。
老师那天问我:
如果f(x)很复杂,样本很少,这个叫什么?
我觉得,这个拟合如果样本少,但是结果很好,那也不算什么欠拟合和过拟合。
如果拟合的不好,那么这个应该是过拟合。因为这个f(x)肯定可以很好的拟合训练样本。
老师说是叫欠拟合,那我认为应该是f(x)相对于这个很少的样本来说是欠拟合(前提是拟合的不好)。
所以我觉得这个过拟合和欠拟合都应该是针对某一个样本来说。
大家觉得理解的对不对?