1、什么是过拟合?
过拟合问题:由于我们有大量的特征,学习到的假设函数能够很好的拟合训练集(即代价函数能最小化到趋近0:
m
i
n
i
m
i
z
e
θ
J
(
θ
)
→
0
minimize_{\theta}J(\theta)\rightarrow0
minimizeθJ(θ)→0),但是假设函数却很难泛化新样本。
下面两个图分别是线性回归和逻辑回归针对同一个数据集的三个不同假设函数,从图中可以看出,第一个假设函数对数据的拟合很差,具有很高的偏差,我们称之欠拟合(under-overfitting),第三个假设函数能够完美的拟合数据,但是具有很高的方差(曲线波动很大),我们称之为过拟合(overfitting);而中间的这个假设函数在拟合数据时,既没有很高的偏差,也没有很高的方差,我们称之为刚刚好。
(1)线性回归
(2)逻辑回归
2、解决过拟合的方法有哪些?
解决过拟合问题的方法主要有以下几种:
(1)减少特征的数量
- 手动选择一些特征保留;
- 模型选择算法;
- 这种方法会丢弃一些特征,如果选择不当,可能会丢弃对模型影响很大的特征;
(2)正则化
- 保留所有的特征,但是会减小参数 θ j \theta_{j} θj的值;
- 当我们有大量特征时,正则化的效果会非常好,因为每一个特征都会对模型的预测能力做出贡献。