网络机器人吧社区

机器学习模型出错的四大原因及如何纠错

新智元 2018-12-05 13:30:06

  新智元编译  

来源:kdnuggets.com

作者:Bilal Mahmood

翻译:文翥


新智元启动新一轮大招聘:COO、执行总编、主编、高级编译、主笔、运营总监、客户经理、咨询总监、行政助理等 9 大岗位全面开放。 

简历投递:jobs@aiera.com.cn

HR 微信:13552313024

新智元为COO和执行总编提供最高超百万的年薪激励;为骨干员工提供最完整的培训体系、高于业界平均水平的工资和奖金。

加盟新智元,与人工智能业界领袖携手改变世界。



【新智元导读】本文介绍了机器学习模型出错的常见原因, 讨论了如何用偏差和方差、精确率和召回率这些指标来评测模型的问题,并基于 Andrew Ng 在斯坦福机器学习课程中所教授的概念,提出了一些解决这些问题的方法。



可供选择的机器学习模型并不少。我们可以用线性回归来预测一个值,用逻辑回归来对不同结果分类,用神经网络来对非线性行为建模。


我们建模时通常用一份历史数据让机器学习模型学习一组输入特性的关系,以预测输出。但即使这个模型能准确预测历史数据中的某个值,我们怎么知道它是否能同样准确地预测新的数据呢?


简而言之,如何评估一个机器学习模型是否真的“好”呢?


在这篇文章里,我们将介绍一些看似很好的机器学习模型依然会出错的常见情况, 讨论如何用偏差(bias)vs 方差 (variance),精确率 (precision)vs 召回率(recall)这样的指标来评估这些模型问题, 并提出一些解决方案以便你在遇到此类情况时使用。



高偏差还是高方差





检验一个机器学习模型时要做的第一件事就是看是否存在“高偏差(High Bias)”或“高方差(High Variance)”。


高偏差指的是你的模型对实验数据是否“欠拟合(underfitting)”(见上图)。高偏差是不好的,因为你的模型没有非常准确或者有代表性地反映输入值和预测的输出值之间的关系, 而且经常输出高失误的值(例如模型预测值与真实值之间有差距)。


高方差则指相反情况。出现高方差或者“过拟合”时, 机器学习模型过于准确,以至于完美地拟合了实验数据。这种结果看上去不错,但需引起注意,因为这样的模型往往无法适用于未来数据。所以尽管模型对已有数据运行良好,你并不知道它在其他数据上能运行得怎样。


那怎样才能知道自己的模型是否存在高偏差或是高方差呢?


一种直接了当的方法就是把数据一分为二:训练集和测试集。例如把模型在 70% 的数据上做训练,然后用剩下的 30% 数据来测量失误率。如果模型在训练数据和测试数据上都存在着高失误,那这个模型在两组数据都欠拟合,也就是有高偏差。如果模型在训练集上失误率低,而在测试集上失误率高,这就意味着高方差,也就是模型无法适用于第二组数据。


如果模型整体上在训练集(过往数据)和测试集(未来数据)上都失误率较低,你就找到了一个“正好”的模型,在偏差度和方差度间达到了平衡。



低精确率还是低召回率





即使机器学习模型准确率很高,也有可能出现其他类型的失误。


以将电子邮件分类为垃圾邮件(正类别 positive class)和非垃圾邮件(负类别 negative class)为例。99% 的情况下, 你收到的邮件都并非垃圾邮件,但可能有1% 是垃圾邮件。假设我们训练一个机器学习模型,让它学着总把邮件预测为非垃圾邮件(负类别), 那这个模型 99% 的情况下是准确的,只是从未捕获过正类别。


在这种情况下,用两个指标——精准率和召回率来决定究竟要预测多少百分比的正类别就很有帮助了。




精准率是测量正类别多常为真, 可以通过计算“真正(true positive, 例如预测为垃圾邮件且真的为垃圾邮件)”与“真负(true negative, 例如预测为垃圾邮件但事实并非如此)”总和中“真正”的个数而得出。


召回率则用来测量实际上的正类别多常被准确预测, 以计算真正与假负(false negative, 例如预测邮件为非垃圾邮件,但事实上邮件是垃圾邮件)的总和里有多少个真正而得出。


另一种理解精确率与召回率区别的方法是,精确率测量的是对正类别的预测中有多少比例成真,而召回率则告诉你预测中多常能真正捕获到正类别。因此,当正类别预测为真的情况很少时, 就出现了低精确率,当正类别很少被预测到的时候,就出现了低召回率。


一个良好的机器学习模型目标在于,通过试图最大化“真正”的数量以及最小化“假负”和“假正”的数量来实现精确率与召回率的平衡(如上图所示)。



5 种改进模型的方法





如果模型面临高偏差 vs. 高方差的问题,或者在精确率和召回率之间难以平衡,有几种策略可以采用。


比如机器学习模型出现高偏差时,你可以试试增加输入特征(input feature)的数量。上文已讨论过,高偏差出现于模型对背后的数据欠拟合时,在训练集和测试集都会出现高失误率。如果把模型的失误以基于输入特征个数的函数画出(见上图), 我们发现特征越多,模型的拟合度越好。


同理,对于高方差,你可以减少输入特征的数量。如果模型对训练数据过拟合,有可能是你用了太多特征,减少输入特征的数量会使模型对测试或者未来数据更灵活 。同样,增加训练样本的数量对高方差也是有益的, 这会帮助机器学习算法建出一个更通用的模型。


对要平衡低精确率与低召回率的情况,你可以调整区分正负类别的概率临界值(probability threshold)对低精确率可以提高概率临界值,以使模型在指定正类别时更为保守。反之,遇到低召回率时可以降低概率临界值,以能更常预测到正类别。


经过足够迭代,就很有可能找到一个能平衡偏差与方差,精确率与召回率的合适的机器学习模型了。


本文是基于 Andrew Ng 在 Coursera 上的斯坦福机器学习课程笔记里教授的概念。


原文地址:http://www.kdnuggets.com/2016/12/4-reasons-machine-learning-model-wrong.html




新智元招聘


职位  运营总监


职位年薪:36- 50万(工资+奖金)

工作地点:北京-海淀区

所属部门:运营部

汇报对象:COO

下属人数:2人

年龄要求:25 岁 至 35 岁

性别要求:不限

工作年限:3 年以上

语  言:英语6级(海外留学背景优先)


职位描述


  1. 负责大型会展赞助商及参展商拓展、挖掘潜在客户等工作,人工智能及机器人产业方向

  2. 擅长开拓市场,并与潜在客户建立良好的人际关系

  3. 深度了解人工智能及机器人产业及相关市场状况,随时掌握市场动态 

  4. 主动协调部门之间项目合作,组织好跨部门间的合作,具备良好的影响力

  5. 带领团队完成营业额目标,并监控管理项目状况

  6. 负责公司平台运营方面的战略计划、合作计划的制定与实施


岗位要求


  1. 大学本科以上学历,硕士优先,要求有较高英语沟通能力

  2. 3年以上商务拓展经验,有团队管理经验,熟悉商务部门整体管理工作

  3. 对传统全案公关、传统整合传播整体方案、策略性整体方案有深邃见解

  4. 具有敏锐的市场洞察力和精确的客户分析能力、较强的团队统筹管理能力

  5. 具备优秀的时间管理、抗压能力和多任务规划统筹执行能力

  6. 有广泛的TMT领域人脉资源、有甲方市场部工作经验优先考虑

  7. 有媒体广告部、市场部,top20公关公司市场拓展部经验者优先


新智元欢迎有志之士前来面试,更多招聘岗位请访问新智元公众号。


Copyright © 网络机器人吧社区@2017