应用机器学习入门四步法

为初学者提供从顶至下的策略,以便开始和实践机器学习。

开始比你想象的要容易得多。

在这篇文章中,我将向您展示应用机器学习的自上而下的方法。您将发现该方法的四个步骤。它们应该让您感到熟悉,因为这很可能是您学习编程时使用的自上而下的方法。即,先掌握基础知识,大量练习,然后在您真正入迷后,再深入细节。

在文章的结尾,我将链接到我的迷你课程,该课程可以为您缩短学习路径,并提供分步说明,指导您如何开始和实践应用机器学习。

初学者是不同的

初学者对机器学习感兴趣,但不确定如何迈出第一步。他们感到困惑,因为博客和课程中的内容几乎总是针对中级水平的。

machine learning

机器学习
Erik Charlton 拍摄的照片,保留部分权利。

典型的书籍和大学课程是自下而上的。它们在深入研究一些关键算法和理论之前,先教授或要求数学知识。如果您有时间、耐心和适当的背景,这可能是一个好方法。并非每个人都有如此多的空闲时间,或者在接触应用机器学习的核心内容之前,有学习大量低级知识的愿望。

我收到许多初学者关于如何开始机器学习的建议邮件。这是一个棘手的问题,因为有太多的可能性,也有太多我可以推荐的东西。我告诉他们 不要深入研究数学,并且 不要直接回到学校

我建议的学生和专业人士几乎都是程序员或有工程背景的人,我告诉他们,对他们来说,进入机器学习领域有一条更有效率的途径。

解决方案是自上而下

我对机器学习初学者的建议是采取自上而下的方法。

Beginners are Different

初学者是不同的
mikebaird 拍摄的照片,保留部分权利。

我建议初学者走一条更快的路线,在投入大量时间学习理论之前,先了解应用机器学习的全部内容。这很合理,而且也很熟悉,因为这就是您首先对编程感到兴奋的方式,然后再深入研究并将其作为学习和职业的重点。

自上而下的方法是快速学习应用机器学习的端到端工作流程的整个过程,并使用软件工具来完成。借助现代平台,可以使用复杂的最新算法和严格的验证以及统计假设检验,在几分钟到几小时内解决小型问题,所有这些都在工具中自动执行。

在您熟悉并对这个过程充满信心之后,我才建议您开始深入研究机器学习的算法和理论方面。先学会“如何”,再学习“为什么”。

我们可以将这种自上而下的方法总结如下:

  1. 学习应用机器学习的高级流程。
  2. 学习如何使用工具来解决问题。
  3. 在数据集上进行大量练习。
  4. 深入到机器学习算法的细节和理论。

应用机器学习流程

我写了很多关于 应用机器学习流程 的文章。我提倡对分类和回归类型的问题(这是大多数机器学习问题的核心常见问题类型)采用一个6步流程。该流程如下:

  1. 问题定义:理解并清晰地描述正在解决的问题。
  2. 数据分析:理解用于开发模型的信息。
  3. 数据准备:发现并揭示数据集中的结构。
  4. 评估算法:开发一个 稳健的测试框架 和基准准确度,以便改进并 对算法进行抽样检查
  5. 改进结果:利用结果开发更准确的模型。
  6. 呈现结果:描述问题和解决方案,以便第三方能够理解。
Applied Machine Learning Process Overview

应用机器学习流程概述

通过在处理的每个问题中遵循此结构化流程,您可以强制执行最低级别的严谨性,并极大地提高获得良好(或更可能卓越)结果的可能性。

使用 Weka 机器学习工作台

初学者入门时使用的软件平台是 Weka 机器学习工作台。

我认为选择 Weka 作为入门工具是一个毫无疑问的选择,因为:

  • 它提供了一个简单的图形用户界面,封装了上面概述的应用机器学习流程。
  • 它促进了算法和数据集的探索,以及严谨的实验设计和分析。
  • 它是免费且开源的,根据 GNU GPL 许可。
  • 它是跨平台的,可在 Windows、Mac OS X 和 Linux 上运行(需要 Java 虚拟机)。
  • 它包含最新的算法,拥有大量的决策树、基于规则的算法和集成方法,以及其他。
Weka Explorer Interface with the Iris dataset loaded

加载鸢尾花数据集的Weka Explorer界面

您可以自己看看该平台有多容易使用,我写了许多 5 分钟的 Weka 教程,例如:

此外,如果您深入使用 Weka,还可以从命令行运行算法,并通过应用程序接口将算法集成到您的应用程序中。它是一个可扩展的平台,您可以快速轻松地将自己的算法实现到接口中,并在 GUI 中使用它们。

在数据集上反复练习

一旦您开始使用 Weka,就需要练习应用机器学习的 6 步流程。

Weka 安装包含一个数据目录,其中有许多标准的机器学习数据集,其中大多数取自实际的科学问题领域。在 UCI 机器学习存储库 上也有大量优秀的用于试用和学习的数据集。这些数据集是您开始学习和实践的绝佳场所。

  • 数据集很小,可以轻松放入内存。
  • 数据集的小尺寸也意味着算法和实验运行起来很快。
  • 问题和数据是真实的,包括需要您考虑的噪声、抽样偏差和数据收集偏差。
  • 数据是易于理解的,以便您能够利用已知信息,并公开地与同行讨论数据。
  • 有已知的“良好结果”供您比较和重现。

您可以为结构化流程的每个步骤选择自己的详细程度。我建议初学者在每个步骤上花费不超过一小时。您可以在一小时内通过 Weka 了解很多关于一个问题的信息,尤其是在设计和运行实验时。这将使您的动力和项目速度保持高水平。

lots of data

大量数据
照片归功于 cibomahto,保留部分权利

结构化流程鼓励您在处理给定问题时进行观察并记录结果和发现。将这些观察和发现放在一起明智的做法,例如放在项目目录或 Github 项目中。

我建议写博客来记录您的每个项目,甚至记录您完成的项目的每个步骤。您可以在自己的博客(如果您有的话)上完成,或者在 Facebook 或 Google+ 更新(现在支持图片和文本格式)中完成。我喜欢公开写项目博客所带来的诚实。它也为您的同行和同事提供了您对应用机器学习感兴趣、认真对待并正在开发相关技能的指标。

深入过渡

由于项目很小且流程结构化,您可以快速学习很多关于一个问题的信息,并处理多个项目。您还可以收集自己的问题数据,并使用相同的流程在工作项目或您自己的项目中交付有用且有意义的结果。

下一步是深入研究算法,了解它们为何有效以及如何从中获得更多。我建议通过阅读 《数据挖掘:实用的机器学习工具和技术》 来深入学习该主题。这本书是由 Weka 平台的原始作者撰写的,并详细介绍了 Weka 中使用的算法的工作原理以及其他更深层次的机器学习问题。

更深入的知识将使您能够从平台中获取更多关于您自定义问题的结果。它还将使您更好地理解 Weka 中的方法,您将开始对问题和算法类型之间的映射产生直觉。

总结

在这篇文章中,您发现了入门机器学习的自上而下的方法,该方法倡导学习特定的结构化流程、支持此流程的强大工具,并通过一系列重点项目来实践应用机器学习。

您了解到,这与传统的自下而上方法完全相反,传统的自下而上方法期望您首先承担该领域的繁重工作(在您甚至不知道该领域是否适合您之前),然后让您自己找出如何在实践中应用算法。

35条对“4步入门应用机器学习”的回复

  1. Steven Vass 2014年3月4日 8:33 am #

    嗨 Jason,我对这个课程感兴趣。我对 Python 非常熟悉,并且在寻找实践 ML 的方法时,我认为使用 scikit-learn 是我的自然选择。所以我一直对您的 Weka 文章不屑一顾。然而,阅读这篇文章中“使用 Weka 机器学习工作台”的部分,以及 GUI 的图片,真的激发了我的兴趣。它自带数据集并专注于可视化输出来的事实,对我来说是引人注目的功能。它鼓励玩耍和探索。

    我在编程的其他领域发现,停止对使用的工具挑三拣四很重要,只要能完成工作的工具,就应该直接使用。我期待加载 Weka 并尝试数据和算法。

    • jasonb 2014年3月4日 9:03 am #

      谢谢 Steven,我已经发了一封邮件给你,里面有 8 折的优惠券。

      我认为您会从这个课程中获益匪浅。它非常注重实践,而且“应用机器学习”技能在您掌握之后,非常容易迁移到 scikit-learn 等其他平台。

      工具是容易的部分,掌握流程才是关键。而 Weka 是一个使用起来非常愉快的工具。

  2. WallisTD 2014年10月20日 5:20 am #

    您好 – 我刚在信息学课程中接触到机器学习。讲师在介绍中使用了 Weka,现在我正在努力学习更多。我对它在医学中的应用特别感兴趣(例如,糖尿病和乳腺癌的例子)。我期待尝试您的指南。

    感谢您提供一个不令人畏惧的入门资源。

  3. Kris Sage 2014年11月24日 7:09 am #

    嗨 Jason,我对课程非常感兴趣。我之前在亚马逊上浏览了一些关于 Sci-kit 的机器学习书籍,偶然发现了您描述 Weka 及其 GUI 的帖子——我立刻就被吸引了!

    我刚开始接触编程,读了一些东西,看了一些视频,所以对术语和概念非常熟悉——零散的知识点都有了,现在需要大量的练习。我在统计学和回归等方面有深厚的背景——我的大部分背景是金融服务,但我已经开始了一些咨询工作,其中我最大的项目之一是帮助一个在机器学习方面非常成功的客户——所以您的博客无异于雪中送炭!

    我非常兴奋地开始这个课程,并踏上这段机器学习之旅!

  4. Kurren 2015年2月19日 3:33 am #

    这正是我想要的,谢谢

  5. Ranap Sianturi 2015年8月13日 7:18 pm #

    这就是我想要的,感谢分享

  6. Boskay 2015年11月25日 1:52 am #

    我是一名机器学习的新手,通过您的介绍性信息,我知道我一定能从您的模块中获得更好的东西。我还不知道费用是多少,但我一定会参加。我从事文本分类(使用自然语言处理过滤在线社交网络中的冒犯性语言)。我知道这将对我大有帮助。希望在我学习模块的过程中能给您发邮件。
    谢谢你。

  7. ben 2016年1月7日 11:32 am #

    嗨 Jason

    我是一名 Java 开发人员,正在寻找转向分析领域。这个课程将如何帮助我实现这个目标?我真的很喜欢您在机器学习方面的方法。

  8. J George 2016年2月13日 1:41 pm #

    嗨 Jason,

    您会推荐这个课程给(高年级)高中生吗,他们对算法有一些了解,并且已经超越了 Python 等编程语言的基础?

  9. Joga Singh 2016年3月22日 9:50 pm #

    嗨,Jason,
    我想开始上您的课程。您有任何当前的折扣优惠吗?

    此致,

    Joga

  10. Ravuri Niranjan 2016年4月17日 7:54 pm #

    嗨 Jason,感谢您发表了这篇好文章。我是一名在印度南部(海得拉巴)一家慈善医院执业的外科医生。我非常渴望开发一种可以评估、制表和分析个人多种生命体征和其他重要参数的设备,这可以预防许多使人衰弱的慢性疾病。我之前启动了一个名为 healthisall.in 的门户网站,但在正确实施方面失败了,但该博客却非常受欢迎。我已经继续前进,现在我计划启动一个集成应用程序,其中包含一个对每个家庭成员都有用的设备,旨在进行预防。我正在寻找一门能够教我医疗保健相关物联网(真正基础知识)基础知识的课程。请告诉我如何进行。我愿意接触任何对同一领域或相关事务感兴趣的团队。非常感谢。

  11. Frank 2017年2月16日 5:31 am #

    我刚开始接触机器学习。虽然我不是程序员,但我从事网络通信(VoIP、数据、IPTV)领域,并使用许多脚本语言来完成工作。在我的领域,ML 越来越多地被提及,用于各种项目经理、客户服务和绩效分析需求,因此我需要至少熟悉它。我期待您的课程,感谢您使它触手可及,便于我理解。

  12. S Ahmad 2017年2月28日 7:03 pm #

    嗨,Jason,
    我在数据库管理系统和高级语言编程方面拥有丰富的经验。我想转到 ML 领域,但我不知道从哪里开始。我需要您的帮助来继续在 ML 领域前进。学习这门课程的基本先决条件是什么?

    此致
    S Ahmad

  13. abhi 2017年7月31日 9:27 pm #

    到目前为止,这是我在网上找到的最好的初学者教程。我很想阅读您网站上的大部分文章并加入您的课程。

  14. Basanta 2017年11月13日 2:34 am #

    嗨 Jason……受到您文章的启发,我想要学习。但是,我想再问一下。对学生学习课程有什么优惠吗?

  15. Sanchit Sharma 2017年12月10日 5:11 am #

    感谢您提供有价值的信息。我是一名 Java 开发人员,对 ML 感兴趣。在开始学习 ML 之前,我应该先学习 Python 吗?

  16. Pratik 2018年2月15日 9:56 am #

    嗨 Jason!我想开始学习机器学习,但我完全是新手,那么我应该如何以及从哪里开始呢?先谢谢了!

  17. Jesús Martínez 2018年3月7日 10:33 pm #

    我真的很喜欢这篇文章!我完全同意在博客上发布我们的项目、结果和发现的好处。它有很多用途,但对我来说最重要的是,它表明您了解您在说什么!而且,它还能作为您的个人品牌广告,从而为您在行业中的发展铺平道路!

    • Jason Brownlee 2018年3月8日 6:30 am #

      是的,尤其当您专注于机器学习的某个子领域时。

  18. Ankit 2018年6月28日 8:31 pm #

    嗨 Jason,我目前正在使用 Angular 6,并且我想学习 ML,是否有任何先决条件或我应该先学习的语言?

留下回复

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