机器学习笔记——偏差(bias)、方差(variance)与欠拟合(under fit)、过拟合(over fit)

先回顾一下概念

参考这里的博文,机器学习笔记——正则化(Regularization)看一下什么欠拟合(under fit)、过拟合(over fit)的情况。
在这里插入图片描述

欠拟合(under fit)

左边采用一条直线拟合数据,可以明显地看到单条直线不能完全拟合现有数据点。称之为欠拟合。同样的可以看到,这条直线与现有数据点之间存在较大的偏差(bias)。这里看的比较直观。不在多说。

过拟合(over fit)

右边的图可以看到,采用4次多项式对数据见拟合,可见,函数照顾到了所有的数据点,但是在数据拟合的过程中,这条多项式曲线不停的上下波动,所以我们认为这个拟合效果不太符合用于做预测。我们称这种情况为:过拟合。另一种叫法称之为:高方差(high variance)。这个看起来不太直观,后面我们在讲起来。

这里对欠拟合(under fit)、过拟合(over fit)有了相对清晰的认识,那问题来了,如何从假设函数上看出是过拟合还是欠拟合呢?我们接续往下看:

如何区分欠拟合?过拟合?

泛化能力

这里在普及一个概念:泛化能力
所谓的泛化能力就是说已经得到的拟合函数对于新来的样本的适应性。适应性越好说明泛化能力越好。反之,则越差。
通过泛化能力我们来看一些常规做法的问题:
很多学者在做学习的过程中使用所有的数据集作为训练数据得到回归函数,然后为了验证回归函数的的准确性,又从训练数据集中随机的取出一组数据作为测试对象,来观察回归函数的准确性,这其实是有问题的!

泛化能力差的示例

比如之前图片中显示的过拟合问题,得到的回归函数本就是过拟合函数,然后取出训练集中的数据作为测试对象,这个测试结果肯定是好的,因为这个回归函数本就已经考虑到这个测试数据了,但是,如果给出新的样本数据呢?则就不一定了,这就是说这个回归函数的泛化能力较差了,也就是说推广性不好了。通俗一点的说法就是:这帮子数据集 又是运动员又是裁判! 必须不合理!

一般的处理方法 ——测试集的引入

相对于一般的将所有数据作为训练对象不同,我们将训练对象分为两组,按照7:3的比例划分,如下图。注意选择的时候,不要将有规律的数据作为一组,而是要随机的选择
在这里插入图片描述
然后,分别计算出两组数据的误差,我们分别记为训练误差 J(train)θ 和 J(test)θ 。适用于线性回归和逻辑回归,计算过程同下图中“1”和“2”.
在这里插入图片描述

泛化能力说明

这里看一下泛化能力
将数据集分为训练数据集和测试数据集,然后分别求出对应的成本函数的误差,比较二者的状态,若体现出的误差均较小,则说明泛化能力不错,有较好的适应性。

特殊方法 ——交叉验证的引入

给出一组数据,该如何确定使用几次多项式拟合呢?
如下图:
在这里插入图片描述
我们使用前面说的一般方法计算这些不同高次项的多项式函数的测试集误差,然后分别观察这些测试误差的大小,然后取误差最小的拟合多项式作为目标,如下:
在这里插入图片描述
看上图,假设 θ^5 为我们挑选出的最佳目标。根据我们选择的过程,这里还有一个问题需要注意:
这里 θ^5 是在测试数据集的基础上选择出来的,如何保证我们的最优目标(这里就是5次多项式)在对测试数据集的表现不会比新的样本的表现好?换句话说:如何保证我们的目标有较强的泛化能力?
这是一个问题!

此外:更加需要注意的是:如果你的训练数据集非常大!这也许不是一个问题,但是对于一般的来说,训练数据集不会太大,那么这个问题就不得不严肃考虑了!

数据划分

为了避免在测试数据集中出现的泛化能力较差的问题,我们在新划分数据集的时候再多划分出一组数据集,交叉验证数据集(Cross Validation),如下图中“2”所示。
在这里插入图片描述
同样的分别计算出训练集J(train)θ、交叉测试集J(cv)θ、测试集的样本误差 J(test)θ 。
在这里插入图片描述
这里的过程如上图1-2-3步骤所示,这里引入交叉验证集同之前引入测试集最大的不同就是:将原始数据集多预留了一组作为验证拟合函数的泛化能力

偏差bias、方差variance与欠拟合under fit、过拟合over fit

到了重点的位置了,直接看图:
首先给出一个概念上的变换:

J(train)θ➡ 偏差bias (二者在理解上划等号)
J(cv)θ ➡ 方差variance

以上,是需要多理解的
在这里插入图片描述
配合下面这个图帮助理解(这里的 J(test)θ和 J(cv)θ可以等同理解):
当d=1的时候,就是一条直线拟合,出现过高的偏差,此时 J(train)θ 和 J(test)θ都大;
当d=2的时候,就是二次曲线拟合,偏差降低,此时 J(train)θ 和 J(test)θ都降低;
当d=4的时候,就是四次多项式拟合,偏差持续降低,但是出现过拟合情况,此时此时 J(train)θ走低,但是 J(test)θ却出现较大偏差。
在这里插入图片描述

基于以上的认识,我们从偏差和方差二者的关系看一下如何判断成本函数的问题属性:
在这里插入图片描述

其实,从图中就可以看出判断:
当 J(train)θ ≈ J(test)θ ≈ high 时,就是偏差(bias)问题,就是欠拟合(under fit)问题
当 J(test)θ >> J(train)θ ≈ low 时,就是方差(variance)问题,就是过拟合(over fit)问题

至此,是不是对偏差(bias)、方差(variance)与欠拟合(under fit)、过拟合(over fit)有了更清晰的认识了?

PS:此学习笔记为学习斯坦福吴恩达机器学习视频笔记。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值