机器学习中的欠拟合与过拟合问题

版权声明:本文为博主原创文章,转载请附上博文链接。 https://blog.csdn.net/qq_41080850/article/details/86253123

       机器学习的基本问题是利用模型对数据进行拟合,学习的目的并非是在有限训练集上进行正确预测,而是要对未曾在训练集合出现的样本进行正确预测。模型对训练集数据的误差称为经验误差,对测试集数据的误差称为泛化误差。模型对训练集以外样本的预测能力就称为模型的泛化能力,追求这种泛化能力始终是机器学习的目标。过拟合和欠拟合是导致模型泛化能力不高的两种常见原因,都是模型学习能力与数据复杂度之间失配的结果。“欠拟合”常常在模型学习能力较弱,而数据复杂度较高的情况出现,此时模型由于学习能力不足,无法学习到数据集中的“一般规律”,因而导致泛化能力弱。与之相反,“过拟合”常常在模型学习能力过强的情况中出现,此时的模型学习能力太强,以至于将训练集单个样本自身的特点都捕捉到,并将其认为是“一般规律”,同样这种情况也会导致模型泛化能力下降。过拟合与欠拟合的区别在于,欠拟合在训练集和测试集上的性能都较差,而过拟合往往能较好地学习训练集数据的性质,而在测试集上的性能较差。

欠拟合(underfitting):欠拟合是指模型拟合程度不高,数据距离拟合曲线较远,或指模型没有很好地捕捉到数据特征,不能够很好地拟合数据。

过拟合(overfitting):过拟合是指为了得到一致假设而使假设变得过度严格。

——以上内容来源于百度百科

下面借用两张图来形象的说明什么是欠拟合与过拟合:

欠拟合出现的原因:

1)模型复杂度过低;

2)特征量过少。

欠拟合问题的解决方法:

1)增加新特征;

2)添加多项式特征,这个在机器学习算法里面用的很普遍,例如将线性模型通过添加二次项或者三次项使模型泛化能力更强;

3)减少正则化参数,正则化的目的是用来防止过拟合的,但是模型出现了欠拟合,则需要减少正则化参数;

4)使用非线性模型,比如核SVM 、决策树、深度学习等模型;

5)使用集成学习方法,如Bagging ,将多个弱学习器Bagging。

过拟合出现的原因:

1)建模样本选取有误,如样本数量太少,选样方法错误,样本标签错误等,导致选取的样本数据不足以代表预定的分类规则;

2)样本噪音干扰过大,使得机器将部分噪音认为是特征从而扰乱了预设的分类规则;

3)参数太多,模型复杂度过高;

改善过拟合的方法:

1) 增大训练数据集;

2)简化模型(减少模型中的特征数量);

3)选取合适的停止训练标准,使对机器的训练在合适的程度;

4)正则化,即在进行目标函数或代价函数优化时,在目标函数或代价函数后面加上一个正则项,一般有L1正则与L2正则等。

参考:

Andrew Ng机器学习公开课

周志华《机器学习》

https://hackernoon.com/memorizing-is-not-learning-6-tricks-to-prevent-overfitting-in-machine-learning-820b091dc42

本文为博主原创文章,转载请注明出处。

猜你喜欢

转载自blog.csdn.net/qq_41080850/article/details/86253123
今日推荐