实用的机器学习问题

什么是机器学习?我们可以阅读权威的机器学习定义,但实际上,机器学习是由要解决的问题来定义的。因此,理解机器学习的最佳方式是看一些示例问题。

在本文中,我们将首先探讨一些现实世界中广为人知且易于理解的机器学习问题示例。然后,我们将研究一个标准机器学习问题的分类(命名系统),并学习如何将问题识别为这些标准案例之一。这很有价值,因为了解我们所面临的问题类型可以帮助我们思考所需的数据和要尝试的算法类型。

10个机器学习问题示例

机器学习问题比比皆是。它们构成了您每天在网络或桌面使用的软件的核心或难题。想想 Twitter 上“是否关注”的建议以及苹果 Siri 的语音识别。

以下是10个机器学习示例,它们真正奠定了机器学习的基础。

  • 垃圾邮件检测:给定收件箱中的电子邮件,识别哪些电子邮件是垃圾邮件,哪些不是。拥有此问题的模型可以允许程序将非垃圾邮件保留在收件箱中,并将垃圾邮件移至垃圾邮件文件夹。我们都应该熟悉这个例子。
  • 信用卡欺诈检测:给定客户一个月的信用卡交易记录,识别哪些交易是由该客户进行的,哪些不是。拥有此决策模型的程序可以退还欺诈性交易。
  • 数字识别:给定信封上写的手写邮政编码,识别每个手写字符的数字。此问题的模型可以使计算机程序读取和理解手写邮政编码,并按地理区域对信封进行排序。
  • 语音识别:给定用户的发音,识别用户提出的具体请求。此问题的模型可以允许程序理解并尝试满足该请求。配备 Siri 的 iPhone 具有此功能。
  • 人脸检测:给定包含数百张数字照片的数字相册,识别包含特定人物的照片。此决策过程的模型可以允许程序按人物组织照片。某些相机和软件(如 iPhoto)具有此功能。
Face Detection

照片中的人脸检测示例。
照片由 mr. ‘sto 拍摄,根据知识共享署名-相同方式共享 2.0 通用许可协议授权。

  • 产品推荐:给定客户的购买历史和大量库存产品,识别客户会感兴趣并可能购买的产品。此决策过程的模型可以允许程序向客户进行推荐并促进产品购买。亚马逊具有此功能。还可以考虑 Facebook、GooglePlus 和 LinkedIn,它们在您注册后会推荐用户与您联系。
  • 医疗诊断:给定患者表现出的症状以及匿名患者记录数据库,预测患者是否可能患有某种疾病。此决策问题的模型可以由程序用于为医务人员提供决策支持。
  • 股票交易:给定股票的当前和过去价格走势,确定股票是应该买入、持有还是卖出。此决策问题的模型可以为金融分析师提供决策支持。
  • 客户细分:给定用户在试用期内的行为模式以及所有用户的过去行为,识别将转换为付费版本产品的用户和不会转换的用户。此决策问题的模型可以允许程序触发客户干预,以说服客户尽早转化或更好地参与试用。
  • 形状检测:给定用户在触摸屏上绘制形状以及已知形状的数据库,确定用户尝试绘制的形状。此决策模型可以允许程序显示用户绘制的形状的规范版本,从而制作清晰的图表。iPhone 应用 Instaviz 就是这样做的。

这10个例子很好地展示了机器学习问题的样子。有历史示例的语料库,有需要建模的决策,以及拥有该决策模型并有效自动执行该决策的业务或领域效益。

其中一些问题是人工智能中最难的问题,例如自然语言处理和机器视觉(完成人类轻松完成的事情)。其他问题仍然很困难,但它们是机器学习的经典例子,如垃圾邮件检测和信用卡欺诈检测。

回想一下您上周与在线和离线软件的互动。我相信您肯定能轻松猜出您直接或间接使用的另外十到二十个机器学习示例。

机器学习问题类型

阅读了上面列出的机器学习问题示例后,我相信您已经开始看到相似之处了。这是一项宝贵的技能,因为擅长提取问题本质将使您能够有效地思考所需的数据和应尝试的算法类型。

机器学习中存在常见的类问题。下面的问题类别是我们进行机器学习时所指的大部分问题的原型。

  • 分类:数据被标记,意味着它被分配了一个类,例如垃圾邮件/非垃圾邮件或欺诈/非欺诈。要建模的决策是将标签分配给新的未标记数据。这可以被认为是区分问题,对组之间或组内的差异或相似性进行建模。
  • 回归:数据被标记为一个实数值(考虑浮点数),而不是一个标签。易于理解的例子是时间序列数据,例如股票价格随时间的变化。要建模的决策是为新的未预测数据预测什么值。
  • 聚类:数据未被标记,但可以根据相似性以及数据中的其他自然结构度量将其分为几组。上面列表中的一个示例是按人脸(没有姓名)对图片进行组织,其中人类用户必须为组分配名称,例如 Mac 上的 iPhoto。
  • 规则提取:数据用作提取命题规则(前因/后果,即“如果-那么”)的基础。这些规则可能不被定向,但通常不被定向,这意味着这些方法会发现数据中统计上可支持的关系,而不一定涉及正在预测的某些内容。一个例子是发现购买啤酒和尿布之间的关系(这是数据挖掘领域的民间传说,无论真假,都说明了这种愿望和机会)。

当您认为一个问题是机器学习问题时(一个需要从数据中建模的决策问题),接下来要考虑的是您可以轻松地将其表述为哪种类型的问题,或者客户或要求需要哪种类型的结果,然后倒推。

资源

很少有资源提供实际机器学习问题的列表。它们可能存在,但我找不到。不过我还是为你找到了一些很棒的资源。

  • 年度“Humies”奖:这是一系列奖项,授予由与人类结果相媲美的算法实现的结果。这令人兴奋,因为算法仅基于数据或成本函数工作,并且能够足够有创造性和创新性地侵犯专利。太棒了!
  • 人工智能效应:当人工智能程序达到足够好的结果时,它就不再被视为人工智能,而是变成了普通技术并融入日常事物。这一点同样适用于机器学习。
  • AI-Complete:指的是人工智能中非常困难的问题,如果解决了,将成为强人工智能(科幻小说中所设想的人工智能,即真正的人工智能)的例子。计算机视觉和自然语言处理的问题都是 AI-Complete 问题的例子,也可能被视为机器学习问题的特定领域类别。
  • 2013年机器学习十大难题是什么? 这个 Quora 问题有一些极好的答案,其中一个列出了一些实际机器学习问题的广泛类别。

我们回顾了一些常见的实际机器学习问题示例以及机器学习问题类别分类。现在,我们可以有信心地评论一个问题是否是机器学习问题,并从问题描述中提取元素,判断它是分类、回归、聚类还是规则提取类型的问题。

您是否知道更多实际的机器学习问题?请留言分享您的想法。

70 条关于实用机器学习问题的回复

  1. qnaguru 2014年2月17日 下午4:08 #

    为什么机器学习还不能预测股票价格?
    考虑到股票价格的历史信息是可用的。

    这仅仅是因为历史信息本身不足以预测未来价格吗?似乎是这样。

    • jasonb 2014年2月17日 下午4:10 #

      这是一个非常困难的问题。恐怕就是这么简单。

      据我所知,要做好,你需要大量不同的方法协同工作。

      • Amitava Mitra 2017年7月31日 上午9:56 #

        首先,即使人们能够预测股票价格——会发生什么?这只不过是另一个层面的熵,我们的有限理性会变得更好,我们可能会声称我们变得更理性了。换句话说,如果我们对股票价格的理解有足够的维度,那么最终我们会像天气预测一样做得更好。它能解决人类的任何问题吗?

    • Nick Bauman 2014年5月24日 上午8:24 #

      机器学习不能(也可能永远不会)预测股票价格的原因是,股票过去的表现并不代表其未来的表现。换句话说,没有什么可以“学习”。

      我们所知道的

      股票上涨是因为买家多于卖家。股票下跌是因为卖家多于买家。仅此而已。

      • Pramod 2016年10月16日 下午5:45 #

        股票价格受市场因素驱动,这些因素包括公司运营情况……以及未来的增长计划等,此外还有其他因素。任何随机的错误新闻都可能危及股票价格并使其下跌。任何机器学习算法都应该考虑并找到解决方案的一系列因素,才能对预测股票价格进行回归。动态非常巨大,可能需要巨大的努力才能提出一个相对可扩展的解决方案。

    • mwag 2014年8月7日 上午12:25 #

      事实上,机器学习可以成功应用于股票走势,一些对冲基金也在这样做。然而,由于市场是一个零和游戏,成功就意味着需要保密:如果成功的机器学习方法被公开披露,其他人就会使用它,该方法将不再成功。一个推论是,任何成功的解决方案都不能无限扩展,所以即使您有一个成功的机器学习方法,您使用它的次数越多,您从中获得的收益就会越少。这就是为什么对冲基金不能仅仅找到一种有效的机器学习方法然后无限增长。

      • James 2015年6月10日 下午12:23 #

        史蒂夫·乔布斯去世,苹果股价下跌…
        马来西亚航空公司飞机坠毁,马航股价下跌…
        马航飞机被击落,马航股价下跌…
        Tesco 食品中发现马 DNA,股价下跌…
        孟加拉国制造商工厂倒塌,美国品牌股价下跌…

        除非我遗漏了什么,否则我很难看出机器如何仅通过查看先前的股价就能预测这些事件?

        • bradhd 2015年7月20日 上午5:35 #

          当然,通过查看先前的股价不可能预测这些事件。我不认为有人会误以为可以完美地模拟所有价格变动。目标只是尽可能多地正确预测。毕竟,这些是模型——这意味着它们并不完美。

          话虽如此,实际上可以将这些事件纳入机器学习模型(尽管正如您所指出的,并非仅使用先前的股价)。您无法预测它们,但您可以尝试比市场更快地“应对”它们。许多对冲基金使用新闻提要、新闻稿和 Twitter 等数据源,应用自然语言处理技术(如情绪分析)来寻找可能预示股票市场变动的信号。

        • abhay tiku 2016年10月13日 下午8:27 #

          詹姆斯刚才引用的都是罕见事件,在任何预测准确性窗口内预测它们几乎都是不可能的(地震预测是同理的)。即便如此,股票市场上的灾难性事件由于其罕见和随机性(但不经常发生)而可能非常难以建模或预测。这与我认为的“建设性”事件不同,例如苹果公司多年来一直保持强劲的同比利润,并适时推出了正确的产品(iPod、iPhone、iPad 等),任何拥有少量机器学习工具的人都可以跟踪并将这些纳入其模型(正如其他人所说,例如 NLP、文本信息挖掘、情绪挖掘、社交媒体分析、销售/客户/竞争对手数据建模等),并据此对苹果的股价下注。

    • Vikas 2015年7月25日 下午7:37 #

      不确定性使得学习变得困难。我可以想象,当所有影响股票价格的不确定性组合都输入到机器学习中学习时,机器学习才能进行预测。然而,这似乎在实践中很困难。

      • Ahamed 2016年2月14日 上午3:35 #

        我们也可以通过输入历史灾难事件以及市场过去对这些灾难的反应来预测这些事件,我们可以列出历史灾难以及市场对这些事件的反应中的波动性。

    • Michalis Michael 2015年11月14日 上午12:27 #

      我们知道谣言可以影响股价。

      我们使用机器学习来预测社交媒体帖子(谣言)关于上市公司的情绪。我们发现,在某些情况下,净情绪得分是一个预测因子。

    • Amine 2016年3月6日 下午4:10 #

      因为股票会被操纵,所以历史数据无关紧要。

    • Howard Bandy 2016年7月9日 下午12:45 #

      迟复 qnaguru —

      这是一个关于使用机器学习进行交易系统开发的视频演示链接
      https://www.youtube.com/watch?v=v729evhMpYk&feature=youtu.be

      祝好,
      霍华德

      • Neha 2018年3月9日 下午7:15 #

        谢谢班迪先生提供的视频链接。它很有帮助。

    • The Juan 2017年9月25日 上午8:09 #

      石油价格可能受到战争、政治愚蠢和其他算法不易获取的因素的影响,因此预测趋势变得非常困难。

    • Jaideep 2018年8月6日 下午5:24 #

      所谓套利使信号消失。如果一家对冲基金能够找到一个有助于预测股价的信号,很快就会有同行开始复制该策略,预测能力就会下降。如果您的信号非常秘密且无人复制,那么您就会用生命来保护它,不接受外部资金投资,从而无法揭示您策略的核心。有许多研究论文记录了随着越来越多的公司复制策略,信号的预测能力如何下降。而且,从一开始,金融数据就有很大的噪音,这肯定无济于事。

  2. usha 2014年7月31日 上午3:32 #

    机器学习问题应能够明确假设集、训练和测试的特征以及学习策略,然后才能将问题视为机器学习问题。

  3. Akash Deep Singh 2014年9月27日 下午8:54 #

    回答“qnaguru”提出的问题,我想建议您阅读《预测分析——预测谁会点击、购买、撒谎或死亡的力量》,这本书展示了机器学习在当前营销场景中的卓越之处。它也在杰森的《机器学习基础》中有提到。

  4. pcdll.com 2015年1月2日 下午6:14 #

    很棒的信息。我幸运地偶然发现了您的网站
    (stumbleupon)。我已经为以后收藏了它!

  5. Suchitra 2015年3月17日 上午8:48 #

    我们正在尝试将机器学习应用于
    – 识别需要监控工作场所安全的新驱动因素(石油和天然气行业)。
    安全分析——有人对我们拥有的海量结构化和非结构化数据中使用的技术有任何意见吗?我们目前正在研究如何识别导致致命事故的新驱动因素,从而使企业能够建立相关的监控能力。

    – 人力资源:识别谁最“像我”。尽可能自动化招聘流程,以便人力资源部门能更有效地找到合适的候选人,并消除其中更手动化的环节。

    有人可以分享任何见解、想法或论文吗?
    使用了哪些技术?
    您是如何处理数据集的?
    数据是如何呈现的?
    欢迎所有建议。

    谢谢,
    Suchitra。

  6. Rodrigo 2016年1月26日 上午5:52 #

    感谢这篇帖子!o/

  7. Onesmus 2016年5月26日 下午10:10 #

    感谢这些信息,这是一个很好的学习平台…

    • ALEJANDRO MITARITONNA 2020年6月16日 上午10:44 #

      嗨 Jasin,很棒的帖子!一个问题:您能否提供一个人脸检测的多线程示例?谢谢!

  8. guiller 2016年7月14日 上午1:58 #

    我正在寻找预测分析,需要识别机器故障,进行数据挖掘传感器读数,你能帮我吗?

    • Leo B 2017年7月17日 下午1:29 #

      我正在使用振动监测系统处理这个问题。请给我发邮件,我们可以讨论并尝试互相帮助解决这个问题。 Leo@machinesaver.net

  9. Jim Kitzmiller 2016年7月26日 上午7:05 #

    极好的帖子!谢谢,杰森。

  10. srinivas n 2016年9月20日 上午10:23 #

    我不确定学习驾驶或学习领域知识(例如数学学习系统)这类事物属于您的四种分类的哪一种?

    • Jason Brownlee 2016年9月21日 上午8:27 #

      我认为它们更像是通用系统问题,其中更精细的元素可能使用机器学习。

  11. Yulia Ye 2017年2月7日 上午12:42 #

    有一张不错的图片解释了机器学习的原理——https://www.cleveroad.com/images/article-previews/computer-science-fields.png

    聊天机器人重新流行的原因之一是机器学习技术的飞速发展。但它是什么?难道不是让聊天机器人与人交流的人工智能吗?说得对,不是。开发人员离创造真正的人工智能还有很长的路要走。但是,他们在其一个子领域——机器学习——中已经取得了显著的成果。
    机器学习专注于开发可以从模式和过往经验中学习的程序。
    机器学习算法用于聊天机器人开发,以便它们可以从与用户的对话中学习,从而优化下一次互动。

    • Jason Brownlee 2017年2月7日 上午10:18 #

      对我来说,我认为聊天机器人更像是人工智能而不是机器学习。

      我的机器学习重点是预测建模。构建可以进行分类和回归以及这些问题的变体的模型。

  12. s kotrappa 2017年4月22日 上午1:20 #

    你好 Jason Brownlee 请帮我获取癌症细胞用于数据分析数据集。

    • Jason Brownlee 2017年4月22日 上午9:28 #

      可以考虑搜索 Kaggle 和 UCI 机器学习存储库。

  13. Subhab 2017年5月17日 下午4:33 #

    嗨 Jason,有什么好的开源机器学习平台可以解决预测或推荐系统解决方案,根据用户偏好、产品喜好、类别偏好、市场状况、最新客户趋势以及可能的销售数据等历史数据,构建一个向客户推荐产品和类别的系统?

    • Jason Brownlee 2017年5月18日 上午8:30 #

      好问题,我还没有深入研究推荐系统(除了从头开始编码)。我不知道哪个平台是最好的——也许 Python 中的 sklearn 是一个不错的起点。

  14. Tim 2017年6月14日 下午3:55 #

    关于股票市场价格预测的一条评论。机器学习显然可以帮助进行股票市场预测,但这永远不会是确定的。我本人也投资股票,并手动分析过趋势,以找到遵循特定模式的股票。这些股票是更好的投资,因为收益更能被预测。我认为首先使用机器学习找到这类股票会是一个很好的应用,而不是试图对任何特定股票进行预测。

  15. karan katiyar 2017 年 6 月 15 日上午 2:46 #

    非常喜欢这篇文章。您能详细介绍一下信用卡欺诈吗?
    最新技术、解决方案、问题。

    谢谢

    • Jason Brownlee 2017 年 6 月 15 日上午 8:47 #

      谢谢。

      抱歉,我目前没有信用卡欺诈的例子。

  16. Falah 2017 年 6 月 26 日上午 8:21 #

    我正在做手势识别。数据集包含每个手势的视频序列,我可以从每个视频中选择有限数量的帧,然后使用 RNN 来分类这些手势吗?或者 RNN 可以分类包含(35-100)帧的视频吗?

    • Jason Brownlee 2017 年 6 月 27 日上午 8:20 #

      很好的问题。

      考虑使用 CNN 前端。考虑探索不同的帧速率并比较模型技能。

      • Falah 2017 年 6 月 27 日下午 6:57 #

        请详细解释一下。

        • Jason Brownlee 2017 年 6 月 28 日上午 6:21 #

          抱歉,我还没有视频处理的例子,希望很快能有。

  17. Dan 2017 年 7 月 1 日下午 8:37 #

    对于上面询问 ML 是否可以应用于股票交易的人,事实上它已经被应用了:https://en.wikipedia.org/wiki/High-frequency_trading 这种算法交易开始变得更加为人所知。

  18. Amitava Mitra 2017 年 7 月 31 日上午 9:58 #

    杰森,这篇文章写得太好了。
    诚挚的问候

    Amitava

  19. Gaurav Jain 2017 年 12 月 8 日上午 4:04 #

    感谢您的指点!🙂

  20. Jesús Martínez 2018 年 1 月 11 日上午 10:18 #

    这是一篇非常好的文章。它定义了一些机器学习真正擅长的领域,例如推荐系统和垃圾邮件检测。我还要补充自动驾驶汽车!随着深度学习的普及,在教深层神经网络如何驾驶汽车的目标下,该领域取得了许多进步。事实上,麻省理工学院开设了专门针对自动驾驶汽车的深度学习课程:https://selfdrivingcars.mit.edu/

    再次感谢杰森,文章写得很棒!恭喜!

  21. Lucas Lopes 2018 年 1 月 19 日上午 10:46 #

    在“产品推荐”部分,您写了两次 Facebook:“此外,还可以考虑 Facebook、GooglePlus 和 Facebook 在您注册后推荐您连接的联系人。”

  22. Ravi Shankar 2018 年 4 月 19 日上午 2:54 #

    Jason,

    我正在尝试将 ML 应用于产品测试中的问题。运行大量测试会产生故障。我想根据相似性将故障分组到集群中。

    虽然我仍在进行不同的特征选择,但如何验证结果?是手动审查和用户接受,还是有自动化的方法?如果某些分组(集群)不正确,如何找到问题?在这个问题中,没有标记数据,因此手动审查和接受似乎是唯一的方法。

    任何输入都将有帮助。

    • Jason Brownlee 2018 年 4 月 19 日上午 6:38 #

      抱歉,我没有聚类方面的资料,主要是因为我没有。

      验证集群是一个巨大的问题。在我看来,这就像巫术(而不是科学),所以我避开了。

  23. Ravi Shankar 2018 年 4 月 19 日上午 11:42 #

    感谢您的快速回复。我去找其他选择。

  24. Venugopal D 2018 年 8 月 31 日下午 4:17 #

    好文章。读完之后,我能够理解并将现实世界的问题归类到 ML。
    感谢这篇帖子。

  25. Harshali Patel 2018 年 12 月 3 日晚上 10:38 #

    我几天前才开始学习机器学习,它激发了我对 ML 领域的兴趣。在了解了用例和可能出现的挑战之后,我现在可以理解整个主题了。
    感谢如此信息丰富的文章。
    继续发帖

    祝好!

  26. siva ram krishna 2019 年 12 月 15 日下午 2:43 #

    请给我推荐一个(ML)小型项目创意。

  27. Gracie 2020 年 6 月 23 日下午 3:03 #

    非常有用的文章,内容丰富。

  28. Gracie 2020 年 7 月 7 日下午 2:33 #

    您有很多很棒的东西,而且您一直让我们每个人都为之惊叹。

  29. Sloboda 2021 年 5 月 26 日下午 8:41 #

    好文章。谢谢你,杰森!

发表回复

Machine Learning Mastery 是 Guiding Tech Media 的一部分,Guiding Tech Media 是一家领先的数字媒体出版商,专注于帮助人们了解技术。访问我们的公司网站以了解更多关于我们的使命和团队的信息。