开发 | 你的机器学习模型为什么会出错?奉上四大原因解析及五条改进措施

对开发者来说,目前有一系列的机器学习模型可供选择。AI科技评论了解,可以用线性回归模型预测具体的数值,用逻辑回归模型对不同的运算结果进行归类,以及用神经网络模型处理非线性的问题等等。

不论哪一种,当模型选定之后,下一步就是利用大量的现有数据对相关的机器学习算法进行训练,探究既定的输入数据和预想的输出结果之间的内在关系。但这时可能会出现一种情况:训练结果能够成功应用于原始输入和输出,可一旦有新的数据输入就不行了。

或者说得更直白一点,应该怎样评估一个机器学习模型是否真的行之有效呢?AI科技评论从偏差、方差、正确率和查全率等四个方面对这一问题展开了探讨,并给出五条改进措施。

高偏差或高方差(High Bias or High Variance)

当我们评估一个机器学习模型时,首先要做的一件事就是:搞清楚这个模型的偏差和方差是否太大。

高偏差:如上图1所示,所谓高偏差就是指在取样点上模型的实际输出和预想输出不匹配,而且相差很远。出现这一问题的原因是模型并没有准确表征既定输入和预想输出之间的关系,从而造成输出结果的高错误率。

高方差:这种情况与高偏差的情况正好相反。在这一场景中,所有的取样点结果都与预期结果完全相符。看起来模型的工作状态完全正常,但其实隐藏着问题。这样的情况往往容易被忽视,就好像上文提到的,模型能够成功应用于原始输入和输出,但一旦输入新数据,结果就会漏洞百出。

那么问题来了,如何排查一个模型是否具有高偏差或者高方差呢?

一个最直接的办法就是对数据进行交叉验证。常见的交叉验证方法有很多,例如10折交叉验证、Holdout验证和留一验证等。但总体思路是一样的:拿出大部分的数据(例如70%)进行建模,留一小部分(例如30%)的数据作为样本,用刚刚建立的模型进行测试,并评估测试结果。持续进行这一过程,直到所有的样本数据都恰好被预测了一次为止。

经过交叉验证,就可以很方便地排查一个模型的偏差和方差情况。当建模数据和测试数据的输出结果都出现与预期结果的不匹配时,那就说明模型的偏差较大。反之,如果建模数据表现正常,而测试数据存在不匹配,那就说明模型的方差较大。同时,如果建模数据和测试数据的输出结果都与预期结果相匹配,那么就证明这一模型顺利通过了交叉验证,在偏差和方差之间找到了一个很好的平衡点。

不过,即使偏差和方差都表现正常,一个机器学习模型也不一定就能正常工作,因为还可能受到其他因素的影响,例如正确率和查全率。

低正确率或低查全率(Low Precision or Low Recall)

这里可以用垃圾邮件筛选的例子来说明什么是正确率和查全率。在一般情况下,我们收到的大约99%的邮件都是正常邮件,而只有1%是垃圾邮件(这里不妨称“垃圾邮件”为正向判断,而“正常邮件”为反向判断,后续会用到)。而如果一个机器学习模型被以类似这样分布的数据进行训练,那么其训练结果很可能是:机器的判定结果有99%都是正确的,虽然正确率很高,但其中也一定漏掉了那1%的垃圾邮件(这显然不是我们想要的结果)。

在这种情况下,最适于利用正确率和查全率来评估一个模型是否真的行之有效。

如图所示,所谓正确率是指所有正向判断中,最终判断正确的比例。计算方法是用正向判断中正确的次数除以所有正向判断的次数。而查全率是指正向判断中正确的次数,占实际正向结果的比例。计算方法是用正向判断中正确的次数,除以正向判断中正确的次数与反向判断中错误的次数之和。

乍一看似乎有点拗口,这里用具体的数字解释一下。例如一个模型一共做了2次正向判断,其中1次是正确的,10次反向判断,其中8次是正确的。如果用邮件的例子来看,也就意味着系统一共收到了12封邮件,其中9封是正常邮件,3封是垃圾邮件。那么其正确率就是1/2=50%,而查全率就是1/3=33%。

可以看到,正确率反应了一个模型的预测准确度,而查全率反应了一个模型的实际应用效果。一个机器学习模型的设计目标应该是在正确率和查全率中找到一种平衡,一方面努力增加正向判断中正确的次数,一方面减小反向判断中错误的次数。

五条改进措施

根据以上内容,在面对偏差和方差,正确率和查全率的相关问题时,有以下5点意见可供参考。

1. 当模型出现高偏差时,尝试增加输入数据的个数。如上文讨论的,当建模数据和测试数据的输出结果都出现与预期结果的不匹配时,那就说明模型的偏差较大。根据一般的模型输入数据和预测错误之间的关系图表可以看出(如上图所示),随着输入特征的增加,偏差会显著减小。

2. 反之,当模型出现高方差时,可以尝试减少输入数据的个数。从图表中也可以看出,当输入数据进一步增加时,虽然建模数据的错误会越来越少,但测试数据的错误会越来越多。因此,输入数据并不能无限制地增加,在高方差的情况下尝试减少输入数据的个数,可以找到二者之间的平衡。

3. 另外,通过增加训练用例的个数也可以显著减少高方差的出现。因为随着测试用例的增加,模型的通用性也就越好,能应对更多变的数据,也即方差越小。

4. 当正确率较低时,尝试增加概率阈值。如上图所示,划分正向判断和反向判断的概率阈值与正确率和查全率之间关系密切。随着阈值的增加,模型对正向的判断也就越保守,正确率也就越高。

5. 反之,当出现较低的查全率时,可以尝试减小概率阈值。因为概率阈值的减小意味着模型会做出更多的正向判断,正向判断的次数多了,查全率就会跟着提升。

总之,经历的迭代和调试越多,就越可能找到偏差和方差、正确率和查全率之间的平衡,也就越可能找到一个行之有效的机器学习模型。

来源:kdnuggets

原文发布于微信公众号 - AI科技评论(aitechtalk)

原文发表时间:2017-02-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏量子位

提高驾驶技术:用GAN去除(爱情)动作片中的马赛克和衣服

作者:達聞西 量子位 已获授权编辑发布 作为一名久经片场的老司机,早就想写一些探讨驾驶技术的文章。这篇就介绍利用生成式对抗网络(GAN)的两个基本驾驶技能: 1...

3676
来自专栏数据科学与人工智能

【机器学习】机器学习分类算法总结

目前看到的比较全面的分类算法,总结的还不错. 主要分类方法介绍解决分类问题的方法很多,单一的分类方法主要包括:决策树、贝叶斯、人工神经网络、K-近邻、支持向量...

2385
来自专栏AI科技评论

强化学习实验里到底需要多少个随机种子的严格证明

AI 科技评论按:在机器学习和深度强化学习研究中,可重复性成为了最近最为热门、最常被人诟病的话题之一。复现一篇基于强化学习的文章远比想象的难,具体分析可参照《l...

713
来自专栏PPV课数据科学社区

机器测试题(下)

人工智能一直助力着科技发展,新兴的机器学习正推动着各领域的进步。如今,机器学习的方法已经无处不在—从手机上的语音助手到商业网站的推荐系统,机器学习正以不容忽视的...

2766
来自专栏大数据挖掘DT机器学习

机器学习分类算法总结

目前看到的比较全面的分类算法,总结的还不错. 主要分类方法介绍解决分类问题的方法很多,单一的分类方法主要包括:决策树、贝叶斯、人工神经网络、K-近邻、支持向量...

3264
来自专栏ATYUN订阅号

探索生成式对抗网络GAN训练的技术:自注意力和光谱标准化

最近,生成模型引起了很多关注。其中很大以部分都来自生成式对抗网络(GAN)。GAN是一个框架,由Goodfellow等人发明,其中互相竞争的网络,生成器G和鉴别...

1602
来自专栏AI科技评论

学界 | 蒙特利尔大学Bengio团队携手多伦多大学带来最新成果:方差正则化对抗学习

AI科技评论消息,由多伦多大学与蒙特利尔大学的Karan Grewal、R Devon Hjelm、Yoshua Bengio三人近日合作发表的文章《Varia...

2785
来自专栏大数据挖掘DT机器学习

逻辑回归、决策树和支持向量机

作者:赵屹华,计算广告工程师@搜狗, http://www.csdn.net/article/2015-11-26/2826332 这篇文章,我们将讨论如何在逻...

2614
来自专栏人工智能

最新机器学习必备十大入门算法!都在这里了

原文来源:KDnuggets 作者:Reena Shaw 「雷克世界」编译:BaymaxZ ? 我们向初学者介绍十大机器学习(ML)算法,并附上数字和示例,方便...

1927
来自专栏机器学习算法与Python学习

支持向量机(SVM)--(4)

回忆:在上一篇文章中我们谈到为了使支持向量机能够处理非线性问题,进而引进核函数,将输入空间的输入数据集通过一个满足Mercer核条件的核函数映射到更高...

2786

扫码关注云+社区