(机器学习,深度学习)关于拟合,欠拟合,过拟合的问题解释和图例(肯定看得懂系列)
关于拟合,欠拟合,过拟合
本篇主要介绍 什么是拟合,什么是欠拟合,什么是过拟合的问题,主要面对 机器学习,深度学习 的观望者和初学者
1.关于拟合的介绍
前排提示:如果关于这部分的介绍阅读有困难,请先移步到 /关于AI的入门介绍(编辑中)/ 这篇文章进行前提知识阅读
所谓的拟合,就是将平面中的许许多多的点用一条线连接起来,如图:
这就是平面中的一堆点,拟合就是要将这些点连起来。但到底是怎样的连接确实一个很大的问题,如图:
虽然都已经将全部的点连接起来,但是方式不同。也就是拟合的效果不同。
要知道进行拟合就是为了预测数据,按照上图1,3的拟合方式进行预测,结果肯定比想象的还要差。
所以要记住,在机器学习和深度学习等AI领域中,
AI=数据+模型
数据决定了AI的上限,模型决定了AI的下限,只要拟合模型靠谱,再不精确的数据也能计算出相对来说靠谱的结果
2.欠拟合
现在我们已经知道了什么叫做拟合,那么除了正确的拟合模型外,也存在着欠拟合和过拟合的问题
所谓的欠拟合,如图:
拟合就是在图中画一条能表示点的线,那么上图也完成了任务,虽然表示的效果不好,用这么一条线表示点的分布规律显然是要被唾弃的。
如此,我们可以视为计算机出工但没有出力
随便画了一条线糊弄过关,这就是欠拟合
3.欠拟合的解决方法
在欠拟合中,我们可以注意到,画出的拟合线与实际数据分布是不符合的
这就好像说你唱歌不跑调,只不过原唱和你唱的不一样
那么解决欠拟合的方法就有以下两种思路:
-
把原唱解决
这个方案显然是瞎扯 -
自己尽量往调上靠
那么如何往数据上靠呢?我们继续观察数据
通过肉眼可知,数据是一条抛物线,但在欠拟合的结果下,无论以什么样的角度来画拟合线,都无法真正的表示出数据的关系所以要表示这些数据,首先肯定是使用一条抛物曲线,所以我们就得出了解决欠拟合的第二个方法的解决思路
将原本一维的数据 y=ax+b 加工成二维数据y=ax^2+bx+c
y=ax+b注定是一条直线
具体方法请参考本人的另一篇文章 /关于数据维度的操作(编辑中)/
这样我们就得到了一条抛物曲线,用于表示数据的关系
这样欠拟合的问题便成功解决
4.过拟合
在上篇中,我们已经介绍了 拟合,欠拟合以及欠拟合的解决方法。
现在便是本篇的重点,关于过拟合的问题
欠拟合一般在实际中很少会遇到,但过拟合一定是绕不开的一个问题
首先介绍什么是过拟合
在上篇中,我们知道欠拟合就是计算机出工不出力,随便画一条线完事
那么过拟合就是:
计算机今天心情不错,用力过猛,导致过拟合
如图:
由图可见,本来数据点可以用一条红色的曲线进行拟合,但是AI大爷用力过猛,不仅把现有数据进行了拟合,而且自作主张的画出了本不应该存在的后续范围而且还是错的
这就是过拟合,简而言之,用力过猛
5.过拟合详解
- 造成过拟合的原因
- 模型过于复杂,也就是在欠拟合中提到的,一维变二维,或者变成了三四五六维,上图便是进行了五维的扩充而导致的。由此可见,数据的维度并不是越高越好。
那么到底使用几维的数据呢?
要解决这个问题也简单
一个一个试 - 在数据中存在着过多的无用属性,举个例子,在关于当代年轻人收入水平的预测中,每个样本以及预测数据中的名字就是一个用不到属性。也就是说结果和该属性没有直接,间接的关系
- 模型过于复杂,也就是在欠拟合中提到的,一维变二维,或者变成了三四五六维,上图便是进行了五维的扩充而导致的。由此可见,数据的维度并不是越高越好。
- 解决过拟合的方法
1.简化模型,将高纬数据降低
2. 进行PCA 如果不知道什么是PCA 请移步到 /关于PCA的介绍(编辑中)/
3. 在进行模型训练时,增加正则化项
过拟合模型在对训练数据进行预测时,准确率极高
过拟合模型在对测试数据进行预测时,准确率极低
过拟合模型就是在追求对于训练数据的极致描述,不具备通用性,不能进行推广