机器学习入门之【机器学习】泛化误差评估——过拟合和欠拟合的理解与相关推导
小标 2018-11-28 来源 : 阅读 1736 评论 0

摘要:本文主要向大家介绍了机器学习入门之【机器学习】泛化误差评估——过拟合和欠拟合的理解与相关推导,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助。

本文主要向大家介绍了机器学习入门之【机器学习】泛化误差评估——过拟合和欠拟合的理解与相关推导,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助。

【模型评估相关概念】


       通过机器学习训练出来的数学模型,如果具备很好的泛化能力(即,在训练集和测试集或者更大的数据集中都能很好的决策),那么该模型就是我们理想的训练模型。但是由于训练集质量的影响,往往得不到理想的训练模型,不好的情况一般表现为:过拟合和欠拟合


 

图一表现为欠拟合、图二表示理想的预测模型、图三表现为欠拟合



欠拟合 (高偏差)

欠拟合: 是指模型没有能够很好的学习到数据特征,不能很好的拟合数据,表现为预测值与真实值之前存在较大的偏差。如上图第一个示例。

导致欠拟合的原因: 预测函数的学习能力不足,预测模型过于简单(具体到预测算法模型中就是:特征项不够(包括原始数据的一阶特征和高阶特征))

解决办法:


增加特征项:可以添加额外的属性,也可以组合当前属性,生成高阶属性。进而使学习模型的泛化能力更强。


减少正则化参数:正则化的目的是用来防止过拟合的,但是现在模型出现了欠拟合,则需要减少正则化参数。



过拟合(高方差)

过拟合: 模型学习数据的能力太强(复杂的预测函数),除了学习到数据整体的特性以外,还额外学习到了训练集的一些特性,主要表现为能够很好的拟合训练集,但是不能很好的预测测试样本(即,泛化能力太差)

导致过拟合的原因: 预测模型过于复杂(包含过多的特征项:一阶或者高阶),并且往往训练集样本过少。从数学的角度解释:我们在学习线性代数时,给出n个线性无关的方程,我们可以解出来n个变量,但是肯定解不出来n+1个变量。在机器学习中,如果数据数量(对应于方程)远小于模型空间(对应求解的变量),我们只能求解得到部分参数(参数权重 θ hetaθ ),而对于另外的部分参数我们无法确定,虽然根据样本我们得到了参数值(θ hetaθ),但是这部分额外得到的参数值反映的是训练集对应属性的一些分布特性(即包含了训练集本身的特性),故不具备很好的泛化特性,更何况数据中还包含一些不合理的数据样本,综合所有因素,最终导致预测模型能够很好的拟合训练集但是不能很好的拟合测试样本。

解决办法:


增加样本数量:根据原因,导致过拟合的因素是由于训练集样本太少,不具备整体性,所以增加样本数量可以提升泛化能力。


减少变量(属性)数量:与增加样本数量相对,减少无关或者弱相关变量项,可以人工去除,也可以选择相关的算法进行自动去除。


清洗数据:导致过拟合的一个原因也有可能是数据不纯导致的,如果出现了过拟合就需要我们重新清洗数据。


正则化:减少无关(或者弱相关)参数项的权重,即减小对应的θ hetaθ值。进而降低训练集本身特性的影响。




【泛化性能评估:偏差-方差分解】


       这部分内容是作为上一部分内容的补充,通过这部分内容,可以进一步加深对上一部分概念的理解。注意到,上文对欠拟合和过拟合,特意注解为高偏差和高方差。关于这部分的理解,我们主要通过偏差-方差分解来解释。

偏差-方差分解: 试图通过对学习算法的期望泛化错误率进行拆解,来解释学习算法泛化性能,是众多解释学习算法泛化性能的一种重要工具。

我们知道,算法在不同训练集上学得的结果很可能不同,即使这些训练集是来自同一分布。以回归任务为例:

回归任务最常用的性能度量——均方误差:

E(f;D)=1m∑i=1m(f(xi)−yi)2E(f;D)=_x00C_rac{1}{m}sum_{i=1}^{m}(f(x_i)-y_i)^2E(f;D)=m1i=1∑m(f(xi)−yi)2

更一般的形式,对于数据分布DDD和概率密度函数p(⋅)p(cdot)p(⋅),均方误差可描述为:

E(f;D)=∫x−D(f(x)−y)2p(x)dxE(f;D)=int_{x - D}(f(x)-y)^2p(x)dxE(f;D)=∫x−D(f(x)−y)2p(x)dx

其中xxx表示测试样本,yyy为样本xxx对应的真实标记,f(x)f(x)f(x)为训练集DDD上学得模型fff在xxx上的预测输出,在下面我们将用f(x;D)f(x;D)f(x;D)表示,即

f(x;D)=f(x)f(x;D)=f(x)f(x;D)=f(x)

学习算法的期望预测为:

f¯(x)=ED[f(x;D)]_x0008_ar{f}(x)=E_Dleft[f(x;D)ight]f¯(x)=ED[f(x;D)]

使用样本数相同的不同训练集产生的方差:

var(x)=ED[(f(x;D)−f¯(x))2]var(x)=E_Dleft[(f(x;D)- ar f(x))^2ight]var(x)=ED[(f(x;D)−f¯(x))2]

噪声为:

ϵ2=ED[(yD−y)2]epsilon^2 =E_Dleft[(y_D-y)^2ight]ϵ2=ED[(yD−y)2]

其中yDy_DyD为x在数据集中的标记(数据标记与真实值之间存在噪音误差),yyy为xxx的真实标记

期望输出与真实标记的差别称为偏差(bias),即

bias2(x)=(f¯(x)−y)2bias^2(x)=left( ar f(x)-yight)^2bias2(x)=(f¯(x)−y)<span class=    

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标人工智能机器学习频道!


本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved