【机器学习】什么是过度拟合?如何解决过度拟合?

系列文章目录


第九章 Python 机器学习入门之过度拟合问题及解决办法


系列文章目录

文章目录

前言

一、 什么是过拟合 ?

我们可以通过几个例子来了解一下什么是过拟合,​编辑1 线性回归中的过拟合

2 分类问题中的过拟合

二、 怎么解决过拟合问题

总结


前言

过度拟合问题 the problem of overfitting
到目前为止,我们已经学习了线性回归和逻辑回归两种算法了,它们可以解决很多问题
但是有些时候我们使用算法时,会遇到过度拟合的问题,这就会使得模型表现的不好


一、 什么是过拟合 ?

 什么是过拟合 overfitting?

我们可以通过几个例子来了解一下什么是过拟合,【机器学习】什么是过度拟合?如何解决过度拟合?_第1张图片
1 线性回归中的过拟合

以预测房价为例,使用线性回归拟合数据,如图中第一个模型,它可能效果并不是很好,并不能很好的拟合训练数据
我们可以说,模型对数据的拟合不足,也可以说是算法具有高偏差

这时候我们可以使用特征工程,来看模型的第二个变体,我们可以加入一个特征,这样我们就有两个特征了
我们会得到一个含有 x 和 x^2的函数,如图第二个模型,这个函数可以很好的拟合数据

通常情况下,我们都希望我们的学习学习算法能够很好的泛化,即便是没有见过的例子,也可以很好的预测

如果我们将模型写成四阶多项式会怎么样呢?

如图,我们有x, x^2, x^3, x^4 这四个特征,

拟合的曲线经过了每一个数据,这时候的代价函数接近于0,因为每个数据的平方误差都接近于0

但是这个函数的预测准确吗?可以看见这是一条非常摇摆不定的曲线,上下起伏,这并不是一个预测房价非常好的模型
我们可以说,这个模型已经过度拟合了数据或者说这个模型存在过拟合问题,该方法具有高方差

在机器学习中,过度拟合和高方差 差不多是同一个意思,

机器学习的目的就是找到一个既不是拟合不足也不是过拟合模型,也就是既没有高偏差也没有高方差的模型

2 分类问题中的过拟合

以肿瘤是良性还是恶性为例,【机器学习】什么是过度拟合?如何解决过度拟合?_第2张图片

这是一个具有两个特征x1, x2的分类问题,x1 可能是肿瘤的大小,x2 可能是患者的年龄

我们通过逻辑回归算法来进行分类,我们会得到一个决策边界当我们有两个特征x1, x2时,
不难发现,它似乎并不难很好的拟合数据,这是一个欠拟合或高偏差的模型

来看中间这个,我们添加了几个特征值,它的决策边界可以很好的区别,这是一个不错的模型

第三个模型,我们添加了较多的特征,将每个例子都完美的拟合了,但是它似乎并不合适推广到新的示例中,因为它存在过拟合或高方差的问题。

二、 怎么解决过拟合问题

我们已经知道了什么是过度拟合了,那我们怎么去解决过度拟合的问题呢?

假设我们拟合了一个模型,【机器学习】什么是过度拟合?如何解决过度拟合?_第3张图片

它似乎存在过拟合或高方差的问题,特征值较多

解决这个问题的第一个办法就是添加数据,当训练数据足够多时,过度拟合的模型也就会越准确
当我们没有更多的数据时,如图的右边

解决过度拟合的第二个方法就是 使用更少的特征 【机器学习】什么是过度拟合?如何解决过度拟合?_第4张图片

当我们有x1, x2, x3, x4 .... 多个特征,但是没有足够的训练数据时,我们的模型就可能会过度拟合训练集

为了解决这个问题,我们可以通过使用较少的,那些对输出结果影响较大的特征,不使用不重要的特征。

从多个特征中选择少数几个合适的特征,被称为特征选择,这个方法也有一些缺点,比如它可能会丢弃一些有用的信息

第三个方法就是regularization 正则化,它可以自己选择最合适的一组特征,用于我们的预测任务

【机器学习】什么是过度拟合?如何解决过度拟合?_第5张图片
如图,预测房价的模型中,我们有x, x^2, x^3, x^4 这四个特征,它存在过拟合现象,如果要消除特征x^4,则将对应的参数 w4 设置为0 即可,这就是方法二

那么正则化是怎么处理过拟合的呢

正则化的作用就是使得学习算法缩小参数,而不必要求参数正好为0

事实证明,就算特征值很多的情况,将参数设置的很小,也可以很好的解决过拟合问题,很好的拟合数据

正则化的作用就是让我们保留所有的特征,通过减小参数w 的大小来解决过拟合问题,至于是否正则化参数b,这个没有什么影响


总结

总结一下

我们了解了什么是过拟合,在模型拟合数据时,当特征值太少,不能够很好的拟合数据,我们称其为欠拟合或高偏差;当特征值过多时,虽然拟合的曲线经过了每个数据,代价值接近0,但是它的实用性不强,不能很好的泛化,称其为过拟合或高方差

为例解决过拟合这个问题,我们学习了3种方法:1 收集更多的数据;2 使用少数几个影响较大的特征;3 使用正则化,减小参数大小

你可能感兴趣的:(机器学习,深度学习,算法,python,学习)