what`s overfitting in machine learning

过拟合?欠拟合?

​ 一般情况我们把学习器在训练集上的误差称为’训练误差’(training error),在新样本上的误差称为’泛化误差’(generalization error).而机器学习的目的是得到泛化误差小的学习器.

​ 为了得到性能较好的学习器,我们尽可能多地学习适用于所有潜在样本的普遍规律.(考虑得尽可能的多)

​ 然而,当学习器把训练样本学习得’太好’的时候,很有可能把训练样本本身的一些特点当成了所有潜在样本都会有的一般性质.这样的学习器泛化性能下降了,这就是’过拟合’.与之相对的’欠拟合’,指对训练样本的一般性质尚未学好.下图中的 1,3 分别表示了欠拟合和过拟合.

(A more complex model yields lower error on training data.(if we can truly find the best function)But a more complex model does not always lead to better performance on testing data.This is Overfitting.)


发生原因?

对于过拟合:

​ (1) 训练数据有噪声 (2) 训练模型过度复杂

对于欠拟合:

​ (1) 训练模型过度简单


如何克服?

对于欠拟合:

​ 增强学习能力,重新设计模型:

​ 比如在决策树学习中拓展分支,在神经网络学习中增加训练轮数等;

对于过拟合:

​ 首先必须认识到过拟合是无法避免的,我们能做到只能是**”缓解”**!

​ 可以考虑的是: (1)更多的训练数据 (有效但是并不总是可行) (2)正则化