这是一个非常难写的文章,因为我希望它是真正有价值的。
我坐着在一张空白的页面上提了一个真正困难的问题,什么是最好的函数库,课程,论文和书籍? 我会推荐给机器学习领域的真正初学者。
我真的为该包括什么和排除什么而苦恼。我必须努力把自己置身于程序员和初学者的机器学习之中,并思考哪些资源最有利于他们。
我为每种资源选择最好的。如果你是一个真正的初学者,并且兴奋地开始在机器学习领域,我希望你找到一些有用的东西。我的建议是挑选一件东西,一本书或一个函数库,并阅读封面以涵盖所有的教程。选择一个,坚持下去,然后一旦你掌握了,选择另一个,然后重复。让我们进入它。
编程库
我是“学到可以构成威胁即止,开始小试身手"一个倡导者,。
这就是我学习编程的方法,我相信很多其他人也是这样学习的。了解你的局限性,充分利用你的优势。如果您知道如何编程,可以利用它来快速深入机器学习。那么在实现它的生产系统之前,要有条理地去学习有关技术的数学。
找到一个库,阅读文档,按照教程,开始尝试。以下是最好的开源机器学习编程库。我不认为它们都适合在您的生产系统中使用,但它们是学习,探索和原型设计的理想选择。
从一个你熟悉的语言库开始,然后转到其他更强大的库。如果你是一名优秀的程序员,你可以很容易地从语言转换为语言。这是完全相同的逻辑,只是语法和API不同。
- 用于统计计算的R项目:这是一个环境和一个类似lisp的脚本语言。所有你可能想要做的统计资料将被提供给R,包括优秀的策划。CRAN上的机器学习类(考虑:第三方机器学习软件包)由领导者在现场使用最先进的方法编写的代码,以及任何你能想到的东西。学习R是必须的,如果你想快速探索原型。这可能不是你开始的第一个地方。
- WEKA:这是一个提供API的数据挖掘工作台,以及用于整个数据挖掘生命周期的大量命令行和图形用户界面。您可以准备数据,可视化探索,构建分类,回归和聚类模型,许多算法都内置在第三方插件中。与WEKA无关, Mahout是在Hadoop基础架构上进行机器学习的一个很好的Java框架,如果这更符合您的需求的话。如果您是大数据和机器学习的新手,请坚持使用WEKA并一次学习一件事。
- Scikit学习:基于NumPy和SciPy构建的Python中的机器学习。如果你是一个Python或Ruby程序员,这是你的函数库。这是友好的,功能强大,并提供优秀的文档。如果你想尝试别的,Orange将是一个很好的选择。
- Octave:如果你熟悉MatLab或者你是一个NumPy程序员寻找不同的东西,可以考虑Octave。这是一个像Matlab一样的数值计算环境,可以很容易地编写程序来解决线性和非线性问题,比如大多数机器学习算法的基础问题。如果你有工科背景,这可能是你开始的好地方。
- BigML:也许你不想做任何编程。您可以完全不用编程就可以像WEKA一样驱动工具。您可以进一步使用BigML等服务,在Web上提供机器学习界面,您可以在浏览器中浏览构建模型。
选择一个平台,并用它来完成你的机器学习教育。不要只是读,做。
视频课程
在机器学习中,视频是一种非常流行的入门方式。
我在YouTube和VideoLectures.Net上观看了很多机器学习视频。风险就是你所要做的就是消费,不能采取行动。我建议你在观看视频的时候应该记笔记,即使你稍后放弃笔记。我也建议你尝试一下你在课堂中学到的东西。
坦率地说,我所见过的所有视频课程都不适合初学者,对于一个真正的初学者。它们都预设了至少线性代数和概率论的工作知识,等等。
Andrew Ng的斯坦福大学讲座可能是开设课程的最佳地点,否则我会推荐一次性的视频。
- 斯坦福机器学习:可通过Coursera和Andrew Ng任教。除了报名外,您还可以随时观看所有讲座,并从实际的斯坦福大学CS229课程中获得讲义和课堂笔记。本课程包括作业和测验,并重点介绍线性代数和使用八度。
- 加州理工学院从数据中学习:可通过edX获得并由Yaser Abu-Mostafa授课。所有讲座和材料都可以在CalTech网站上找到。再次,像斯坦福大学的课程一样,您可以按照自己的节奏来完成课内外地作业。它涵盖了类似的主题,并进入了一个更多的细节和数学。家庭作业对于初学者来说可能有点难。
- VideoLectures.Net上的机器学习分类:这是一个容易在内容过载中淹没的地方。找一些看起来很有意思的视频并试用一下。如果不适合自己,请放弃,如果你喜欢,请记下。自己是不是地回来,重新思考主题,并提出全新的话题。此外,很高兴看到这个领域的大师们是什么样的。
概述论文
如果你不习惯阅读研究论文,你会发现语言非常僵硬。一篇论文就像是一本教科书的片段,但描述了一个实验或者其他一些领域。尽管如此,如果您想要开始机器学习,您可能会发现一些有趣的论文。
我只列出了两篇重要的论文,因为看论文真的会让你沮丧。
初学者机器学习书籍
有很多机器学习书籍,为初学者编写的书籍很少。
什么是真正的初学者?
最有可能的是,你要来自另一个领域的机器学习,很可能是计算机科学,编程或统计学。即使如此,大多数书籍都希望你至少有线性代数和概率论的基础。
尽管如此,有一些书鼓励渴望的程序员通过教授算法的最低直觉来开始,并指向工具和库,以便可以跑出去尝试一下。
最值得注意的是集体智慧编程, 黑客机器学习和 数据挖掘:分别用于Python,R和Java的实用机器学习工具和技术。如果有疑问,请抓住这三本书中的一本!
初学者学习机器学习的书籍
- 编程集体智能:构建智能Web 2.0应用程序:本书是为亲爱的程序员您编写的。这是理论上的轻量级,重在代码示例和实际的网络问题和解决方案。买它,读它,做练习。
- 黑客机器学习:在阅读集体智慧编程(上文)之后,我会推荐这本书 。它再次提供了实用的工作实例,但它更多的是一个数据分析的味道,并使用地是R.我真的很喜欢这本书!
- 机器学习:一个算法的角度。这本书就像编程集体智慧的更高级版本 (上图)。它有类似的目标(让机器学习开始的程序员),但它包括数学和参考,以及在Python中的例子和片段。如果你仍然感兴趣,我建议阅读编程集体智慧后阅读。
- 数据挖掘:实用机器学习工具和技术,第三版:我实际上是从这本书开始的,实际上它是第一版,大约是2000年。我是一个Java程序员,这本书和随书库WEKA为我提供了一个完美的环境,可以将我自己的算法作为插件来实现,并且通常练习机器学习和更广泛的数据挖掘过程。我强烈推荐这本书和这方向。
- 机器学习:这是一本旧书,包括公式和大量的参考文献。这是一本教科书,但对于每种算法都有很强的动机。
很多人都在谈论一些很棒的机器学习教科书。我想对于初学者来说,这不是一个好地方。。
进一步阅读
我深深地思考了这篇文章,我也去看了其他人的资源清单,以确保我没有错过任何重要的事情。
为了完整起见,下面是网络上一些关于机器学习入门的大量资源清单。