一.小例
本篇我们来简单介绍一下机器学习中的过拟合和欠拟合问题,首先我们来看一个例子。
我们知道酶的活性会随温度的变化而变化,在最适温度达到最高,高于或低于最适温度都会有所降低,那么我们若想预测某温度下酶的活性时,该怎么判断模型是否欠拟合或过拟合了呢?来看几幅图

可以看到大概在60度左右酶的活性最高,在这之前和之后都会有所降低,我们预想的模型大概是这样的。它的决策边界可能如图所示。

如果说模型过于简单了,就可能就会得到一条直线。这种训练好后的模型既不能满足训练数据的预期,也不能满足新数据的预期,此时它就是属于欠拟合。(训练数据和新数据的预测结果都不准确)

当然,如果模型过于复杂了也不是一件好事。虽然它可以很好的拟合我们的训练数据,但在新数据的预测上就不尽人意了。如下图,对应训练数据,该模型的预测结果是非常准确的,但是我们知道在温度超过最适温度后,酶的活性就会降低,图示结果明显错误,这种情况就是过拟合。(对训练数据的预测结果非常准确,但对新数据的预测结果不准确)

如果大家还有点不理解,博主就来说说网上看到的一个很有趣的比喻。
假如你有一个女朋友,你知道她的一切兴趣爱好,也很清楚她什么时候需要什么,可以很好地满足她的各种需求,这样双方的感情就会比较稳定,你的女朋友也不会厌烦你。但如果有一天你们因为某种原因分手了,然后你又交了一个女朋友,然后你用对待前任的处事方式来对待你的现任女友,你的现任女友就不一定会觉得这种处事方式好了,就可能会产生各种矛盾,这就是过拟合。
那么如果你没有谈过恋爱,并不知道怎么谈恋爱,有一天你突然有了一个女朋友,因为没有经验,你可能无法处理好你们之间的各种事情,这就是欠拟合。
二.简单定义
过拟合和欠拟合:模型不合适,无法对数据进行有效预测。
过拟合:
体现:在训练数据上效果不错,但对于新数据效果一般
原因:模型结构过于复杂,使用了过多属性,训练时包含了干扰信息。
解决方式:
- 简化模型结构(使用低阶模型,比如线性模型)
- 数据预处理,保留主成分信息(数据PCA处理)
- 在模型训练时,增加正则化项(regularization)
欠拟合:
体现:训练数据和新数据效果都不好
原因:模型过于简单(算法较弱)、训练数据过少或过多、用于训练模型的特征属性不佳
解决方式:
1.换一种较强的算法,提高模型复杂度
2 增加或减少数据量
4. 对训练数据做一个主成分分析,保留主成分。

这里呢,博主就不做过多介绍了,就简单说说正则项吧。
在线性回归中,最小损失函数的公式如下:

更新正则项后效果如下:

原来我们的g(x)可能等于下图这种表达式

这时正则项的作用就体现出来了

因为我们要让损失函数尽可能小,如果入取值越大,为了达到目的我们就必须减小θ的值,这样就实现了一个约束的作用,我们就可以借此来约束高次项的影响了,也就是说原来高次项的信息就会减少,过于复杂的边界函数也会变得比较圆滑,也因此实现了一个降维的效果。
7万+

被折叠的 条评论
为什么被折叠?



