本文作者 David Venturi 是技术博客 freeCodeCamp 的知名主笔之一。
一年半前,我退出了加拿大最好的计算机科学专业。之后我通过线上学习资源开始了自己的数据科学硕士学位项目。我意识到能通过 edX、Coursera 和 Udacity 学到所需要的一切,而且能学得更快更高效,开销也更少。
现在我的学习就快完成了。我已经学习了很多数据科学相关课程,并部分旁听了很多其他课程。我知道现在有很多机会,也知道成为数据分析师或数据科学家所需的技能。因此我着手创建了一份指南,推荐了数据科学每个学科中的最佳课程。
在这个系列的第一条指南中,我为数据科学初学者们推荐了一些编程课。接着是统计学和概率论课程。然后是数据科学引介,还有数据可视化的学习。
现在到了机器学习环节
为了写这份指南,我花了十几个小时确认 2017 年 5 月之前所有上线的机器学习课程,从他们的教学大纲和预览中提取关键信息,收集课程评分。
为了完成这项任务,我求助于开源课程中心(Class Central)的社区论坛,翻阅了它包含成千上万课程排名和评价的数据库。
Class Central的主页
从2011年起,Class Central 的创始人 Dhawal Shah 就开始密切关注线上学习课程,比所有人都要早。Dhawal 本人也曾亲自帮助我整理资源清单。
课程挑选标准
每门课程必须满足以下三个标准:
我们相信已经收集了所有满足以上条件且值得注意的课程。因为 Udemy 上差不多有几百个课程,我们选择只考虑那些观看最多和评分最高的课程。
当然本文很可能也有遗漏。所以如果你发现了一门好课程,请在评论区留言。
课程评分标准
我们根据以下三个因素对课程大纲做出了主观判定:
对机器学习工作流的解释。此课程是否概述了运行一次成功的机器学习程序的必须步骤?下一部分解释了一个典型工作流所包含的内容。
涵盖机器学习技术和算法。课程是否涵盖了很多种技术(如回归,分类,聚类等)和算法(如分类中的:朴素贝叶斯,决策树,支持向量机等),或是只有少数几个?我们更倾向于涵盖更多而又不会省略太多细节的课程。
常见的数据科学和机器学习工具的使用。课程是否教授了主流编程语言的使用,如Python, R语言,或 Scala ?还有这些语言中的主流库?这些内容并不是必要的,但却有帮助,因此这样的课程会得到略微的青睐。
什么是机器学习?工作流又是什么?
Arthur Samuel 1959 年的定义被公认为最早的:机器学习是计算机科学的分支领域,它能使「电脑无需明确的编程就能获得学习能力。」在实践中,这意味着开发能根据数据作出预测的计算机程序。正如人类能从经验中学习一样,计算机也可以,对它们来说数据就等同于经验。
机器学习工作流是指执行一个机器学习程序所需的流程。虽说每个程序都有区别,大多数工作流都包括一些共同的任务:问题评估,数据探索,数据处理,模型训练/测试/部署,等等。下面的图例展示了这些步骤的可视化解释:
理想的课程介绍了整个过程,并提通过交互性实例,任务或问答让学生亲自去实践每一项任务。
这些课程涵盖了深度学习吗?
首先,让我们定义一下深度学习。这里有一个简明的描述:
深度学习是机器学习的一个分支,其核心是一种受人脑结构和功能启发的算法,叫做人工神经网络。—— Jason Brownlee,来自 Machine Learning Mastery
可以想见,某些机器学习课程包含了深度学习的部分。然而我选择剔除那些仅有深度学习的课程。如果你对深度学习特别感兴趣,我们推荐你看考以下的文章:
这个清单中,我们最推荐的三个课程如下:
用TensotFlow 进行深度学习的创意应用(Creative Applications of Deep Learning with TensorFlow),授课:Kadenze。地址:goo.gl/RphGWV
机器学习神经网络(Neural Networks for Machine Learning),由多伦多大学的 Geoffrey Hinton 授课,发布于 Coursera。地址:goo.gl/ij93jR
深度学习 AZ:动手实践人工神经网络(Deep Learning A-Z: Hands-On Artificial Neural Networks),由 Kirill Eremenko, Hadelin de Ponteves ,以及 SuperDataScience 团队授课,发布于Udemy。地址:goo.gl/TEzK6h
建议预备知识
下面列出了几门课程要求学生有编程、微积分、线性代数和统计学背景。这些预备知识要求是合理的,因为机器学习是一门高级学科。
缺乏某些必须技能?不用担心!我们在这篇数据科学职业指南的前两篇文章(编程goo.gl/rjXJZs,统计学goo.gl/KoYPc2)或许能帮助你掌握一些背景知识。几门高评分的课程同样提供了概略性的微积分和线性代数补习课,并为不太熟悉的学生突出了与机器学习最相关的部分。
最佳机器学习课程
斯坦福大学在Coursera上的机器学习课程位列榜首,这是综合了评分,评价和教学大纲契合度以后的结果。由吴恩达授课,他是谷歌大脑创始人和前百度首席科学家。这门课程也激发了 Coursera 的创立。有着 422 条评论,它得到了 4.7 星的加权平均得分。
该课程于 2011 年上线,涵盖了机器学习工作流的所有方面。虽然授课范围比原始的斯坦福课程要窄一些,但仍旧包含了很多的技术和算法。预估的学习时间为 11 周,有两周时间专攻神经网络和深度学习上。有免费和付费两种途径。
吴恩达是一位有活力十足又温和的导师,有着丰富的经验。他鼓励学习者的信心,尤其是在对常见的陷阱提出实践性实施建议时。这门课程并没有涉及太多深入的数学问题,不论有没有技术背景,观看者都能享受到学习的过程。同时也有线性代数补习课,吴恩达还重点强调了微积分里与机器学习最相关的知识。
经过一次次的课后选择思考题和项目作业,学生会自然而然的取得进步。这些作业(这门课里有 8 个)可以在 MATLAB 或 Octave 上完成,后者其实是 MATLAB 的开源版。对于课程选用的语言,吴恩达这样解释道:
过去,我试图用很多不同的编程语言去教授机器学习课程,包括 C++, Java, Python, NumPy, 以及 Octave 等。经过将近十年的机器学习教学,我发现如果用 Octave 作为编程环境你会学起来会快很多。
虽然在 2017 年, Python 和 R 语言是更具吸引力的选择,因为这两门语言越来越流行,但评论者们认为这并不能阻止你学习这门课程。
几个有名的评论者认为:
凭借其在 MOOC 领域经久不衰的名声,斯坦福的机器学习课程真的是对这个主题最权威的介绍。这门课程广泛的所有涵盖了机器学习的重要领域。...吴恩达教授用一个调动积极性的讨论和实例引出每一个章节。
他是一位极具天赋的教师,能用非常直观和清楚的方式解释复杂问题,包括所有概念背后的数学原理。非常推荐。
我认为这门课程的唯一问题在于它给其他课程划定了过高的标准。
一门天才教授讲授的新常青藤大学课程
哥伦比亚大学的机器学习课程相对较新,同时也是他们在 edX 上的 MicroMasters 学位的一部分。虽然上线时间短,还没有很多评价,但它现有的评价都异常高。John Paisley 教授被称作是极具天赋,清晰和聪明的。在 10 条评价中有着 4.8 星的加权平均得分。
这门课程也涵盖了机器学习工作流的所有方面,而且比上面的斯坦福课程介绍的算法更多。哥伦比亚的这门是更高阶的课程,评论者们认为具备了推荐的先修知识(微积分、线性代数、统计学、概率论和编程)就不会感到吃力。
课程通过练习题,项目作业和一个最终考试的模式帮助学生取得进步。学生能使用 Python、Octave 或 MATLAB 完成任务。课程的总计预估时间是 12 周,每周 8 到 10 个小时。课程免费,也提供认证证书的购买。
下面是一些之前提到的精彩评论:
在我多年的学生生涯中,我遇到过没有天赋的教授,有天赋但不知道如何清楚讲授知识的教授,以及又有天赋又能把知识讲清楚的教授。Paisley 博士就是我说的第三种。这是一门非常棒的课程。
导师的语言非常明确,对我来说这是此课程最棒的地方之一。讲授课程的质量很高,课件也很棒。
Paisley 博士和他的导师就是…….迈克尔·乔丹的学生,是机器学习之父。(Paisley 博士)是哥伦比亚大学最棒的机器学习教授,因为他能把东西讲的非常清晰。这个学期多大 240 个学生选择了这门课程,是哥伦比亚大学里教授机器学习的老师中最多的。
来自行业专家的 Python 和 R 语言实践课程
Udemy平台的机器学习 AZ 是一门让人印象深刻的精美课程,它提供了 Python 和 R 的教学,这是罕见的。课程有 4.5 星加权平均评级,超过 3,071 人评论,也是评论最多的课程。
40.5 小时的点播视频涵盖了整个机器学习工作流以及一些几乎荒谬好笑的算法(以一种很好的方式)。该课程的教授方式更加应用化,和上述两门课程相比,数学理论要少些。每部分都是从 Eremenko 主持的「直觉」视频开始,这个视频总结了讲授概念的基本理论。接下来, de Ponteves 分别在 Python 和 R 视频中讲述实现。作为『彩蛋』,课程包含了供学生下载和在项目使用的 Python 和 R 代码模板。有小测验和家庭作业,虽然这些不是这门课程的长处。
Eremenko 和 SuperDataScience 团队因『使复杂简单化』的能力备受尊崇。此外,课程所需预备知识『仅仅是一些高中数学』,所以,对于斯坦福大学和哥伦比亚大学课程感到吃力的人来说,这个课程可能是一个更好的选择。
一些突出的点评:
该课程制作专业,音质优良,解释清晰简明...对得起你投入的金钱和时间)。
这很惊人,能同时用两种不同编程语言上这门课。
Kirill 绝对是 Udemy 平台最好的讲师之一(如果不是在网络平台上),我推荐你上他的任何课程。这个课程信息量太大了!
竞争排名
我们的NO.1 课程,在5星评级系统里,加权平均评级为4.7星,超过422条评论。我们看看另一个替代选择,按降级排序。注意,本指南中不包含深入学习课程 - 您可以在这里(https://medium.freecodecamp.com/dive-into-deep-learning-with-these-23-online-courses-bf247d289cc0)找到这些课程。
总的说来,这门课更专注分析技术,尽管也涵盖了几个机器学习主题。充分利用真实世界的熟悉例子来讲述 R。这很有挑战性。每周十到十五小时,十二周以上。提供可购买的认证证书。214条评论,加权平均评级为4.9星。
有大量机器学习内容,涵盖了整个数据科学过程。有更多关于 Python 的详细介绍。这门课程很吸引人,虽然不是很符合我们这份指南的评选标准。 21.5 小时点播视频,花费取决于 Udemy 的折扣力度;Udemy 折扣很频繁。3316 条评论,4.6 星评级。
对于上述 Portilla 的评论也适用于此,除了 R. 17.5 小时点播视频。花费取决于 Udemy 的折扣力度;Udemy 折扣很频繁。1317 评论,4.6 星。
Lazy Programmer由数据科学家/大数据工程师/全栈软件工程师教授,他们履历傲人,目前在Udemy,Lazy Programmer有一系列以机器学习为重点的16门课程。总共有5000多个课程,所有的课程几乎都有4.6星。每门课程介绍中,都有一个课程订购,很实用。用的是 Python。花费取决于Udemy的折扣力度;
汇编了三门单独的课程:监督,无监督和强化学习。一部分是Udacity的机器学习工程师 Nanodegree 和 Georgia Tech 在线硕士学位(OMS)的内容。视频很小,是 Udacity 的风格(友好的教授、免费、有 4.56 星加权平均评级/9 条评论)。
介绍机器学习的核心概念和各种算法。利用几个大型数据友好的工具,包括 Apache Spark、Scala 和 Hadoop。使用 Python 和 R,每周需要四小时,六周以上。免费提供可购买的认证证书。它有 4.5 个星级加权平均评分/6 条评论。
使用 Python。Kane 在亚马逊和 IMDb 有九年经验。九个小时的点播视频。花费取决于 Udemy 的折扣力度;Udemy 折扣很频繁。它有 4.5 星加权平均评级/4139 条评论。
关注『大数据』,特别是在 Scala 和 Spark 中的实现。十个小时的点播视频。花费取决于 Udemy 的折扣力度;Udemy 折扣很频繁。它有 4.5 星级加权平均评级/607 条评论。
Udacity 的旗舰机器学习计划,有一流的项目审查系统和职业帮助。该计划汇编了一些免费的单个 Udacity 课程,由 Kaggle 共同创建。时间表估计有六个月。目前每月需花费 $ 199美元,在 12 个月内毕业的学生可享受 50% 的学费退款。它有 4.5 星级加权平均评级/2 条评论。
目前,EDX的注册已关闭,但课程可通过CalTech独立平台获得(见下文)。它有4.49星加权平均评级/42条评论。
『一个真正的加州理工学院课程,而不是注水版本』。评论表明,它很适合理解机器学习理论。Yaser Abu-Mostafa 教授在学生中很受欢迎,撰写了本课程依据的教科书。讲座的录播视频上传到 YouTube(附带讲座的幻灯片)。安排的家庭作业在 PDF 文件里。课程体验不如排在前三名课程。它有 4.43 星加权平均评级/7条评论。
机器学习的重点是『大数据』。介绍了现代分布式文件系统和 MapReduce。每周需十小时,七周以上。免费。它有4.4星加权平均评级/30个评论。
专注基于云的机器学习,特别是 Amazon Web Services 。用 Python,九个小时的点播视频。花费取决于 Udemy 的折扣力度;Udemy 折扣很频繁。它有4.4星级加权平均评级/62条评论。
使用 Python,八小时点播视频。花费取决于 Udemy 的折扣力度;Udemy 折扣很频繁。它有 4.4 星级的加权平均评级/162 条评论。
基于优秀的教科书,『统计学习导论,R 语言版』( An Introduction to Statistical Learning, with Applications in R),这本书的作者亲自教学。评论者表示,MOOC不如课本,比如练习不足、视频一般。每周需要五小时,九周以上。免费。它有 4.35 星加权平均评级/84 条评论。
伟大的课程,但最后两个课程(包括顶点课程)被取消。评论者注意到,与其他顶级机器学习课程(例如斯坦福大学或加州理工学院)相比,该系列更易于消化(阅读:没有过硬技术背景的人更容易理解)。请注意,该系列并不完整,木有推荐系统、深度学习和总结部分。可免费/付费学习。它有 4.31 星加权平均评级/80 条评论。
『脚踏实地,害羞但自信地呈现了机器学习技术』。由一个具有数十年行业经验的四人团队教授。用Python,花费取决于Udemy的折扣力度;Udemy折扣很频繁。它有4.2星加权平均评级/494条评论。
使用 R,Python 以及 Microsoft Azure 机器学习;该课程是微软数据科学专业课程计划的一部分。每周需要三至四小时,六周以上。可购买认证证书。它有4.09星加权平均评级/11评论。
一个很棒,简短的机器学习探索课程,重点是大数据。涵盖了一些工具,如 R、H2O Flow和 WEKA。只需三周,但一个点评指出,每周六小时更合适。可免费/付费学习。它有 4 星加权平均评级/4 条评论。
为计算机科学与生物学交叉领域感兴趣的人开设的课程,展示了这一交叉领域如何成为现代科学的重要前沿。关注聚类和降维。该课程是 UCSD 的生物信息学专业的一部分。可免费/付费学习。它有4星加权平均评级,超过3评论。
主题宽度和实践工具(Python)优先深度和理论。Sebastian Thrun 和 Katie Malone 导师让课程很有趣。包括短视频和测验,之后是每节课都有一个小项目。目前是Udacity数据分析师纳米学位的一部分。需要大约十周时间。免费。它有3.95星加权平均评级/19评论。
简单介绍了机器学习和几种精选算法。包括决策树、随机森林、套索回归、k-均值聚类。卫斯理大学的数据分析与解释(Data Analysis and Interpretation)专项课程的一部分。预计 4 周的学习时间。有免费和付费的项目。平均分 3.6 星 / 5 个评论。
由微软及其合作伙伴 Coding Dojo 共同制作。使用 Python 编程。每周 8 小时,总计 6 周。有免费和付费的项目。平均分 3.46 星 / 37 个评论。
专注于将概率机器学习方法应用于交易决策。使用 Python 编程。Udacity 的微学位(Machine Learning Engineer Nanodegree)和佐治亚理工学院的在线硕士学位(Online Master’s Degree/OMS)所需修读课程的一部分。预计 4 个月的学习时间。免费。平均分 3.29 星 / 14 个评论。
一些机器学习算法方面简短而实用的介绍。几个 1、2 星的评分表达了种种担忧。JHU 的数据科学(Data Science)专项课程的一部分。每周 4-9小时,总计 4 周。有免费和付费的项目。平均分 3.11 星 / 37 个评论。
介绍了各种机器学习专题。一些非常负面的评分集中在内容选择、缺少编程作业、呈现形式平淡这几个方面。每周 7-10 小时,总计 5 周。有免费和付费的项目。平均分 2.74 星 / 36 个评论。
强烈关注于机器学习的一个特定类型——推荐系统。包含 4 门课的专项课程以及一个顶点项目(是个案例研究)。使用 Lenskit(推荐系统的一个开源工具包)教学。有免费和付费的项目。平均分 2 星 / 2 个评论。
评论认为其教学与评估做得非常糟糕。一些学生发现自己只花了几个小时就完成了整个课程。UCSD 的大数据(Big Data)专项课程的一部分。有免费和付费的项目。平均分 1.86 星 / 14 个评论。
机器学习核心概念的简介。一位评论者指出,该课程缺乏测验且作业没有挑战性。UW 的大规模数据科学(Data Science at Scale)专项课程的一部分。每周 6 至 8 小时,总计4 周。有免费和付费的项目。平均分 1.75 星 / 4 个评论。
下列课程评论较少(截至 2017 年 5 月)
独一无二的课程。学生学习算法、软件工具和机器学习,这些内容是将身体语言、音乐音频等实时数据赋予意义的最佳实践。 7 节课。Audit 免费,Premium 每月 10 美元。有一个 5 星评分。
教学生使用 Python 和 scikit 来学习工具包。使用 Python 编写应用型数据科学(Applied Data Science with Python)专项课程的一部分。课程将于 2017.5.29 开始。有免费和付费的项目。
教学生使用各种工具,包括 Python、R 和微软的 Azure 机器学习(注:微软为该课程的制作方)。还有实操实验室对课程内容进行强化。每周 3-4 小时,总计6 周。免费,可付费购买结业证书。
2018.1 才可注册该课程。编程实例和作业是用 Python 变编写的,使用 Jupyter笔记本。每周 8 小时,总计 10 周。免费,可付费购买结业证书。
主要编程工具为 R 语言。每周 5-10 小时,总计 10 周。免费,可付费购买结业证书。
几种算法的简介。使用惠普的垂直分析平台(Vertica Analytics platform)作为应用工具。课程开始日期待定。每周 2 小时,总计 4 周。免费,可付费购买结业证书。
西班牙语教学。介绍了机器学习中的监督和无监督学习。总计 4 周,合约 20 小时。
使用 Python 和 Dataquest 的交互式浏览器内置平台进行教学。多个引导项目及一个「额外」项目——你可以使用自己的数据来建立自己的机器学习系统。需要订阅。
以下六个课程由 DataCamp 提供。DataCamp 充分利用了视频和文本素材进行混合式教学,使用浏览器内置的编码器并结合了大量实例。订阅方可访问每门课程。
涵盖了分类、回归和聚类算法。使用 R 语言。15 个视频和 81 个练习,预计学习时间为 6 小时。
使用 Python 和 scikit-learn。涵盖分类和回归算法。17 个视频和 54 个练习,预计学习时间为 4 小时。
提供了有关聚类和降维的一个基本介绍,R 语言。16 个视频和 49 个练习,预计学习时间为 4 小时。
教授机器学习中的「大胆想法」。使用 R 语言。 24 个视频和 88 个练习,预计学习时间为 4 小时。
来自 DrivenData 上一个机器学习竞赛的案例研究。内容涉及建立一个模型来自动分类学校预算项目。需要先修 DataCamp 的『使用 scikit-learn 进行监督学习(Supervised Learning with scikit-learn)』课程。15 个视频和 51 个练习,预计学习时间为 4 小时。
涵盖了各种无监督学习算法(Python)、scikit-learn 和 sciPy。课程最后需要学生建立一个推荐系统来推荐流行音乐艺术家。13 个视频和 52 个练习,预计学习时间为 4 小时。
卡内基梅隆大学的研究生入门机器学习课程。是其第二个研究生水平课程「统计机器学习(Statistical Machine Learning)」的先修课程。课程内容结合了实际问题、家庭作业和一个在线提交的期中考试(均附答案)。该课程还有一个 2011 年的版本。CMU 是研究机器学习最好的研究生院校之一,并有一整栋大楼用来研究机器学习。免费。
可能是本指南中最高级的课程。卡耐基梅隆大学机器学习课程的后续课程。课程内容结合了实际问题、家庭作业和一个在线提交的期中考试(均附答案)。免费。
CMU是研究机器学习最好的研究生院校之一。机器学习和统计学机器学习已经上线。免费。
一门本科版的机器学习课程。YouTube 上有该课程的视频,其课程网站上有相关的幻灯片和课程作业(不过没有答案)。de Freitas 现在是牛津大学的全职教授,各大论坛都赞扬了他的教学能力。研究生版见下文。
一门研究生版的机器学习课程。该课程的水准与 de Freitas 的本科版课程(见上文)一致。
小结
此篇是 6 个系列中的第五章,涵盖了助你迈入数据科学领域的最好的在线课程。我们在第一个系列中提到了编程,第二个系列涉及数据和概率统计,第三个系列涵盖了数据科学方面的介绍,而第四个系列讲了数据可视化。
最后一篇文章是对这些文章的总结,外加涉及其它重点课题——如数据管理(data wrangling)、数据库,甚至软件工程——的最好在线课程。
如果你正在寻找一个完整的数据科学在线课程列表,你可以在 Class Central 的数据科学与大数据(Data Science and Big Data)主题页上找到它们:
原文链接:https://medium.freecodecamp.com/every-single-machine-learning-course-on-the-internet-ranked-by-your-reviews-3c4a7b8026c0
读者福利:即日起至 GMIS 2017 大会当天,读者在头条文章下留言,机器之心会在次日选出最专业或最有见解的一条评论赠送 GMIS 2017 双日票一张!
查看大会详情及购票信息,请点击「阅读原文」。