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

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

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

高偏差或高方差(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 ,由雷锋网编译

【兼职召集令!】

如果你对未来充满憧憬,喜欢探索改变世界的科技进展,look no further!

我们需要这样的你:

精通英语,对技术与产品感兴趣,关注人工智能学术动态的萝莉&萌妹子&技术宅;

文字不求妙笔生花,但希望通俗易懂;

在这里,你会收获:

一群来自天南地北、志同道合的小伙伴;

前沿学术科技动态,每天为自己充充电;

更高的生活品质,翻翻文章就能挣到零花钱;

有意向的小伙伴们把个人介绍/简历发至 guoyixin@leiphone.com,如有作品,欢迎一并附上。

本文作者:恒亮

本文转自雷锋网禁止二次转载,原文链接

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

  1. 【机器学习基础】机器学习模型的度量选择(上)

    作者 | Alvira Swalin 编译 | VK 来源 | Medium 第一部分主要讨论回归度量 在后现代主义的世界里,相对主义以各种各样的形式,一直是最受欢迎和最受诟病的哲学学说之一.相对主义 ...

  2. 一份风控模型性能提升秘籍奉上|附视频+实操(详版)

    最近,番茄星球课堂为大家带来了一次主题为"信贷风控拒绝演绎实战"的直播课盛宴,内容充实,干货满满! 课程分为两次专题展开,分别为<拒绝推论场景描述.方法介绍与案例分享> ...

  3. R语言︱机器学习模型评价指标+(转)模型出错的四大原因及如何纠错

    笔者寄语:机器学习中交叉验证的方式是主要的模型评价方法,交叉验证中用到了哪些指标呢? 交叉验证将数据分为训练数据集.测试数据集,然后通过训练数据集进行训练,通过测试数据集进行测试,验证集进行验证. 模 ...

  4. 机器学习模型评价指标+模型出错的四大原因及如何纠错

    笔者寄语:机器学习中交叉验证的方式是主要的模型评价方法,交叉验证中用到了哪些指标呢? 交叉验证将数据分为训练数据集.测试数据集,然后通过训练数据集进行训练,通过测试数据集进行测试,验证集进行验证. 模 ...

  5. 【机器学习】关于机器学习模型可解释(XAI),再分享一招!

    随着时间的推移,学习模型变得越来越复杂,很难直观地分析它们.人们经常听说机器学习模型是"黑匣子",从某种意义上说,它们可以做出很好的预测,但我们无法理解这些预测背后的逻辑.这种说法 ...

  6. 还在随缘炼丹?一文带你详尽了解机器学习模型可解释性的奥秘

    一只小狐狸带你解锁NLP/ML/DL秘籍 正文来源:腾讯技术工程 所谓炼丹,就是将大量灵材使用丹炉将其凝炼成丹.练成的灵丹蕴含灵材的大部分特性,方便携带,容易吸收.高级仙丹在炼制中更是能吸收天地灵气从 ...

  7. MediaPipe: Google Research 开源的跨平台多媒体机器学习模型应用框架

    点击我爱计算机视觉标星,更快获取CVML新技术 本文转载自TensorFlow. CV君:今天跟大家分享一篇来自谷歌的文章,介绍了Google Research 开源的多媒体机器学习模型应用框架Med ...

  8. 机器学习模型可解释性的详尽介绍

    机器之心平台 来源:腾讯技术工程 模型可解释性方面的研究,在近两年的科研会议上成为关注热点,因为大家不仅仅满足于模型的效果,更对模型效果的原因产生更多的思考,这样的思考有助于模型和特征的优化,更能够帮 ...

  9. 【精品】机器学习模型可解释的重要及必要性

    导语:不管你是管理自己的资金还是客户资金,只要你在做资产管理,每一步的投资决策都意义重大,做技术分析或基本面分析的朋友很清楚地知道每一个决策的细节,但是通过机器学习.深度学习建模的朋友可能就会很苦恼, ...

最新文章

  1. tf.expand_dims() 的用法
  2. Leetcode 103. 二叉树的锯齿形层次遍历 解题思路及C++实现
  3. kubernetes1.8.4安装指南 -- 3. 安装docker ce
  4. 中如何调取api_API(接口)是什么
  5. 无法访问_关于小米电视无法访问电脑创建共享文件夹问题
  6. 计算机工程与网络学术会议怎么样,第七届计算机工程与网络国际会议(CENet2017)确保EI快速检索!...
  7. 帆软报表插件开发之fine-decision中的LogInOutEventProvider扩展
  8. 【米课】思维导图与深度思考
  9. python模拟浏览器下载文件_模拟浏览器下载文件?
  10. 为什么应尽量从列表的尾部进行元素的增加与删除操作?
  11. VS2008 + WDK 配置 及其编译错误
  12. Django+Bootstrap+Mysql 搭建个人博客(一)
  13. android svg按钮图标下载,安卓android中小图标使用优化(svg矢量图与iconfiy)
  14. 富士通Fujitsu DPK9500GA Pro 打印机驱动
  15. 装系统弹出计算机丢失,重装系统时提示缺少硬盘驱动怎么解决
  16. 教学:四步利用PHP study小皮面板在vscode上编辑php并运行
  17. 在verilog中将 .txt文件读入reg/将reg的数据写入.txt
  18. 唐诗分析 今析古言项目测试 -2
  19. javascript百炼成仙 第一章 掌握JavaScript基础1.4数据类型
  20. 从跨境电商到成功转行数据分析师,我拒绝了月薪20K的offer... ##

热门文章

  1. iOS_25彩票_幸运转盘
  2. Java中Filter、Servlet、Listener的学习
  3. 组合与继承之重写方法和字段
  4. java List集合中contains方法总是返回false
  5. 网页设计和用户界面设计
  6. Spring工厂常识
  7. Windows 文件服务器升级跨林迁移(二)
  8. 051 日志案例分析(PV,UV),以及动态分区
  9. poj 3662 Telephone Lines spfa算法灵活运用
  10. ppt文本框显示缺字,信息显示不全