机器学习的最佳入门学习资源

标签: IT技术 工具与资源 Machine Learning 机器学习 | 发表时间:2014-01-21 11:25 | 作者:programmer_lin
出处:http://blog.jobbole.com

这是一篇很难写的文章,因为我希望这篇文章能对学习者有所启发。我在空白页前坐下,并且问自己了一个很难的问题:什么样的库、课程、论文和书籍对于机器学习的初学者来说,是最好的。

文章里到底写什么、不写什么,这个问题真的让我很烦恼。我必须把自己当做一个程序员和一个机器学习的初学者,站在这个角度去考虑最合适的资源。

我找出了每个类型中最适合的资源。如果你是一个真正的初学者,并且乐意于开始了解机器学习领域的相关知识,我希望,你可以在我的文章中,找到有用的资料。我的建议是,从中挑出一件来,一本书或者是一个库,反复阅读或者认真学习所有的相关教程。挑出一件并且坚持学习,直到你完全掌握,再重新选择一件,重复这个学习过程。现在就让我们开始吧!

Programming Libraries 编程库资源

我是一个“学习要敢于冒险和尝试”观念的倡导者。这是我学习编程的方式,我相信很多人也是这样学习程序设计的。先了解你的能力极限,然后去拓展你的能力。如果你了解如何编程,可以将编程经验很快借鉴到深入学习机器学习上。在你实现一个实际的产品系统之前,你必须遵循一些规则、学习相关数学知识。

找到一个库并且仔细阅读相关文档,根据教程,开始尝试实现一些东西。下面列出的是开源的机器学习库中最好的几种。我认为,并不是他们中的每一种都适合用在你的系统中,但是他们是你学习、探索和实验的好材料。

你可以从一个由你熟悉的语言编写的库开始学习,然后再去学习其他功能强大的库。如果你是一个优秀的程序员,你会知道怎样从一种语言,简单合理地迁移到另一种语言。语言的逻辑都是相同的,只是语法和API稍有不同。

  • R Project for Statistical Computing:这是一个开发环境,采用一种近似于Lisp的脚本语言。在这个库中,所有你想要的与统计相关的功能都通过R语言提供,包括一些复杂的图标。CRAN(你可以认为是机器学弟的第三方包)中的机器学习目录下的代码,是由统计技术方法和其他相关领域中的领军人物编写的。如果你想做实验,或是快速拓展知识,R语言都是必须学习的。但它可能不是你学习的第一站。
  • WEKA:这是一个数据挖掘工作平台,为用户提供数一系列据挖掘全过程的API、命令行和图形化用户接口。你可以准备数据、可视化、建立分类、进行回归分析、建立聚类模型,同时可以通过第三方插件执行其他算法。除了WEKA之外, Mahout是Hadoop中为机器学习提供的一个很好的JAVA框架,你可以自行学习。如果你是机器学习和大数据学习的新手,那么坚持学习WEKA,并且全心全意地学习一个库。
  • Scikit Learn:这是用Python编写的,基于NumPy和SciPy的机器学习库。如果你是一个Python或者Ruby语言程序员,这是适合你用的。这个库很用户接口友好,功能强大,并且配有详细的文档说明。如果你想试试别的库,你可以选择Orange。
  • Octave:如果你很熟悉MatLab,或者你是寻求改变的NumPy程序员,你可以考虑 Octave。这是一个数值计算环境,与MatLab像是,借助Octave你可以很方便地解决线性和非线性问题,比如机器学习算法底层涉及的问题。如果你有工程背景,那么你可以由此入手。
  • BigML:可能你并不想进行编程工作。你完全可以不通过代码,来使用 WEKA那样的工具。你通过使用BigMLS的服务来进行更加深入的工作。BigML通过Web页面,提供了机器学习的接口,因此你可以通过浏览器来建立模型。

挑选出一个平台,并且在你实际学习机器学习的时候使用它。不要纸上谈兵,要去实践!

Video Courses视频课程

很多人都是通过视频资源开始接触机器学习的。我在YouTube和VideoLectures上看了很多于机器学习相关的视频资源。这样做的问题是,你可能只是观看视频而并不实际去做。我的建议是,你在观看视频的时候,应该多记笔记,及时后来你会抛弃你的笔记。同时,我建议你将学到的东西付诸实践。

坦白讲,我没有看见特别合适初学者的视频资源。视频资源都需要你掌握一定的线性代数、概率论等知识。Andrew Ng在斯坦福的讲解可能是最适合初学者的,下面是我推荐的一些视频资源。

  • Stanford Machine Learning斯坦福的机器学习课程:可以在Coursera上观看,这门课是由 Andrew Ng讲解的。只要注册,你可以随时观看所有的课程视频,从 Stanford CS229 course下载讲义和笔记。这门课包括了家庭作业和小测试,课程主要讲解了线性代数的知识,使用Octave库。
  • Caltech Learning from Data加利福尼亚理工学院的数据分析课程:你可以在edX上学习这门课程,课程是由Yaser Abu-Mostafa讲解的。所有的课程视频和资料都在加利福尼亚理工学院的网站上。与斯坦福的课程类似,你可以根据自己的情况安排学习进度,完成家庭作业和小论文。它与斯坦福的课程主题相似,关注更多的细节和数学知识。对于初学者来说,家庭作业可能稍有难度。
  • Machine Learning Category on VideoLectures.Net网站中的机器学习目录:这是个很容易令人眼花缭乱的资源库。你可以找出比较感兴趣的资源,并且深入学习。不要纠结于不适合你的视频,或者对于感兴趣的内容你可以做笔记。我自己会一直重复深入学习一些问题,同时发现新的话题进行学习。此外,在这个网站上你可以发现是这个领域的大师是什么样的。
  • “Getting In Shape For The Sport Of Data Science” – 由Jeremy Howard讲授:这是与机器学习竞赛者的对话,他们是一些实践中的R语言用户。这是非常珍贵的资源,因为很少有人会讨论研究一个问题的完整过程和究竟怎样做。我曾经幻想过在网上找到一个TV秀,记录机器学习竞赛的全过程。这就是我开始学习机器学习的经历!

Overview Papers综述论文

如果你并不习惯阅读科研论文,你会发现论文的语言非常晦涩难懂。一篇论文就像是一本教科书的片段,但是论文会介绍一个实验或者是领域中其他的前沿知识。然而,如果你准备从阅读论文开始学习机器学习的话,你还是可以找到一些很有意思的文章的。

  • The Discipline of Machine Learning机器学习中的规则:这是由Tom Mitchell编著的白皮书,其中定义了机器学习的规则。Mitchell在说服CMU总裁为一个百年内都存在的问题建立一个独立的机器学习部门时,也用到了这本书中的观点。

我只是列出了两篇重要的论文,因为阅读论文会让你陷入困境。

Beginner Machine Learning Books给机器学习初学者的书

关于机器学习的书有很多,但是几乎没有为初学者量身定做的。什么样的人才是初学者呢?最有可能的情况是,你从另外一个完全不同的领域比如:计算机科学、程序设计或者是统计学,来到机器学习领域。那么,大部分的书籍要求你有一定的线性代数和概率论的基础。

但是,还有一些书通过讲解最少的算法来鼓励程序员学习机器学习,书中会介绍一些可以使用工具、编程函数库来让程序员尝试。其中最有代表性的书是:《Programming Collective Intelligence》,《Machine Learning for Hackers》,《Hackersand Data Mining: Practical Machine Learning Tools and Techniques》(Python版, R版, 以及Java版)。如果感到迷惑的话,你可以选择其中一本开始学习。

Machine_Learning02
  • Machine Learning for Hackers  (中文版: 机器学习:实用案例解析 ):我建议你在阅读了《 Programming Collective Intelligence》一书之后,再阅读这本书。这本书中也提供了很多实践练习,但是涉及更多的数据分析,并且使用R语言。我个人很喜欢这本书!
  • Machine Learning: An Algorithmic Perspective:这本书是《 Programming Collective Intelligence》的高级版本。它们目的相同(让程序员开始了解机器学习),但是这本书包括一些数学知识,参考样例和phython程序片段。如果你有兴趣的话,我建议你在看完《 Programming Collective Intelligence》之后来阅读这本书。
  • 数据挖掘:实用机器学习工具与技术(英文版·第3版) :我自己是从这本书开始了解机器学习的,那时是2000年这本书还是第一版。我那时是Java程序员,这本书和WEKA库为我的学习和实践提供了一个很好的环境。我通过这样的平台和一些插件,实现我的算法,并且真正开始实践机器学习和数据挖掘的过程。我强烈推荐这本书,和这样的学习过程。

有一些人认为那些经典的机器学习教科书很了不起。 我也赞同,那些书的确非常好。但是,我认为,对于初学者来说,这些书可能并不合适。

Further Reading 继续阅读

在写这篇文章时,我认真思考了相关问题,同时也参考了其他人推荐的资料,以确保我没有遗漏任何重要参考资料。为了确保文章的完整性,下面也列出了一些网上流行的,可以供初学者使用的材料。.

你是不是以及读过或者用过上面的一些资源了呢?你怎么看这个问题?

我是不是如愿为那些对机器学习有兴趣的初学者提供了重要、有用的资源呢?请留下你的建议,让我们分享!

机器学习的最佳入门学习资源,首发于 博客 - 伯乐在线

相关 [机器学习 学习 资源] 推荐:

机器学习与人工智能学习资源导引

- Roger - 刘未鹏 | Mind Hacks
我经常在 TopLanguage 讨论组上推荐一些书籍,也经常问里面的牛人们搜罗一些有关的资料,人工智能、机器学习、自然语言处理、知识发现(特别地,数据挖掘)、信息检索 这些无疑是 CS 领域最好玩的分支了(也是互相紧密联系的),这里将最近有关机器学习和人工智能相关的一些学习资源归一个类:. 首先是两个非常棒的 Wikipedia 条目,我也算是 wikipedia 的重度用户了,学习一门东西的时候常常发现是始于 wikipedia 中间经过若干次 google ,然后止于某一本或几本著作.

机器学习的最佳入门学习资源

- - 博客 - 伯乐在线
这是一篇很难写的文章,因为我希望这篇文章能对学习者有所启发. 我在空白页前坐下,并且问自己了一个很难的问题:什么样的库、课程、论文和书籍对于机器学习的初学者来说,是最好的. 文章里到底写什么、不写什么,这个问题真的让我很烦恼. 我必须把自己当做一个程序员和一个机器学习的初学者,站在这个角度去考虑最合适的资源.

国外程序员整理的机器学习资源大全

- - 我爱机器学习
  本列表选编了一些机器学习领域牛B的框架、库以及软件(按编程语言排序). CCV —基于C语言/提供缓存/核心的机器视觉库,新颖的机器视觉库. OpenCV—它提供C++, C, Python, Java 以及 MATLAB接口,并支持Windows, Linux, Android and Mac OS操作系统.

大数据/数据挖掘/推荐系统/机器学习相关资源

- - 互联网分析沙龙
Share my personal resources,本文贡献者为Zhe Yu. 各种书~各种ppt~更新中~ http://pan.baidu.com/s/1EaLnZ. 机器学习经典书籍小结 http://www.cnblogs.com/snake-hand/archive/2013/06/10/3131145.html.

52个有用的机器学习和预测API(各个方向资源)

- - IT瘾-geek
选自KDnuggets  机器之心编译 参与:吴攀. 人工智能正在成为新一代技术变革的基础技术,但从头开始为自己的应用和业务开发人工智能程序既成本高昂,且往往很难达到自己想要的性能表现,但好在我们有大量现成可用的 API 可以使用. 开发者可以通过这些 API 将其它公司提供的智能识别、媒体监测和定向广告等人工智能服务集成到自己的产品中.

机器学习五步走

- - 我爱机器学习
经常会有人问“我该如何在机器学习方面更进一步,我不知道我接下来要学什么了. 一般我都会给出继续钻研教科书的答案. 每当这时候我都会收到一种大惑不解的表情. 但是进步确实就是持续的练习,保持较强的求知欲,并尽你可能的完成具有挑战性的工作. 因为他是为数不多的几种可以让你真真让你获取坚实知识的媒介. 是的,你可以选择选一门课,注册MOOC,参加一些讨论班.

机器学习之路

- - 我爱机器学习
自从答应简二毛博士将自己的机器学习历程和心得分享给大家至今,转眼间半年已经过去了,感谢简博士分享和开源精神的鼓舞,这也正是本系列关于机器学习介绍博客的动力来源. 之前有些网友,师弟们问我,学习机器学习怎么入手,从看什么书开始. 如果你只愿意看一本书,那么推荐Bishop的PRML,全名Pattern Recognition and Machine Learning. 这本书是机器学习的圣经之作,尤其对于贝叶斯方法,介绍非常完善.

机器学习算法Boosting

- - 标点符
机器学习通常会被分为2大类:监督学习和非监督学习. 在监督学习中,训练数据由输入和期望的输出组成,然后对非训练数据进行预测输出,也就是找出输入x与输出y之间的函数关系F:y = F(x). 根据输出的精确特性又可以分为分类和回归. 分类和回归的区别在于输出变量的类型. 定量输出称为回归,或者说是连续变量预测.

68 款大规模机器学习数据集,涵盖 CV、语音、NLP | 十年资源集

- - IT瘾-tuicool
参加 2019 Python开发者日,请扫码咨询 ↑↑↑. 出品 | AI科技大本营(ID:rgznai100). 此前营长为大家分享过不少机器学习相关数据集的资源,例如 Mozilla 的 1400 小时开源语音数据集; ApolloScape 的大规模自动驾驶数据集; 腾讯 AI Lab 的 “Tencent ML-Images” 项目,甚至还有谷歌团队推出的 Google Dataset Search(Google 数据集搜索)…….

Mahout实现的机器学习算法

- - ITeye博客
使用命令:mahout -h.   在Mahout实现的机器学习算法见下表:. EM聚类(期望最大化聚类). 并行FP Growth算法. 并行化了Watchmaker框架. 非Map-Reduce算法. 扩展了java的Collections类. Mahout最大的优点就是基于hadoop实现,把很多以前运行于单机上的算法,转化为了MapReduce模式,这样大大提升了算法可处理的数据量和处理性能.