有许多python机器学习资源在线免费提供.从哪开始?如何进行?从零到python机器学习大神只要7个步骤.
作者Matthew Mayo.发表于KDnuggests.
入门.在英语中最打击人的两个单词.第一部往往是最难的,当在这方面有太多选择,通常让人崩溃.
从哪开始?
这篇文章旨在用7个不走带领python机器学习知识最少的新人成为知识渊博从业者,使用免费材料和资源.这个纲要主要目标是帮你选择可用的众多选项.可以确定有很多,但是哪个是最好的?它们之间是相辅相成?使用选择资源的最好顺序是什么?
进一步,我做出假设你不是下列的专家:
- 机器学习
- Python
- 任何Python的机器学习,科学计算,或者数据分析库
他有可能帮助你对第一或第二或二者有一个基本的认识,但不是必需的.在前面的步骤花费一些额外的时间有可能弥补.
第一步 基本Python技能
如果我们打算利用Python进行机器学习,对Python有一些基本认识是至关重要的.幸运的是,由于其作为一种广泛普及的通用编程语言,并应用于科学计算和机器学习,发现初学者的教程并不困难.Python经验和编程水平一般是选择出发点的重点.
首先,你需要安装Python.因为在有些时候我们需要使用科学计算和机器学习库,我建议你安装Anaconda.这是一个具有工业强度用于Linux,OSX和Windows的Python实现,为机器学习安装需要的包,包括Numpy,scikit-learn和Matplotlib(这是作者的观点,我认为pandas,scipy这种包也是必不可少的).它同样包含Ipython notebook,一个交互式环境.我建议使用Python2.7(译者言:当全世界都是3.X的时候再说改Python3吧),它仍是占主导地位的安装版本没有其他原因.
如果你没有编程知识,我的建议是用下面免费的在线书开始,然后学习随后的材料.
- Python The Hard Way by Zed A. Shaw
如果你有变成经验,但是不是Python,或者你刚学Python,我建议学习下面其中一个或全部:
Google Developers Python Course (视觉学习者强烈推荐,五星好评)
An Introduction to Python for Scientific Computing (from UCSB Engineering) by M. Scott Shell (神奇的Python科学介绍,60页)
对于那些寻求Python30分钟速成班的可以去(某宝):
当然,如果你有Python编程经验,你可以跳过这步.即使这样,我建议你继续阅读Python文档.
第二步 基础机器学习技能
KDnuggets’的创始人 Zachary Lipton指出人们对数据科学家的认识非常不同.实际上是机器学习领域的反映,因为数据科学家的工作包含使用机器学习算法多样化程度.是否有必要深刻了解算法,从而更有效的创建SVM机器模型并从中获取信息?当然不是,就像生活中几乎所有东西,理论理解的深度的要求相对与实际应用(这是作者的一家之言哈~,译者是不支持的,不了解你怎么调参,优化模型呢?哈~).获得机器学习算法的深刻理解已经超出了本书范围,一般需要大量的时间投资在学术中,或者通过高强度的自学.
好消息是你不需要拥有PhD水平的机器学习理论方面的理解,才能用于实践.并不是所有码农都为了有效的编码需要理论的计算机科学教育.这两点是相同的(所以我翻译的是码农.对,我就是在吐槽~自己. :( ).
Andrew Ng的Course课程经常获得五星好评.但是我的建议是,浏览在线课程以前学生编制的课程笔记.跳过关于Octave的笔记(类似Matlab语言,和我们追求的Python无关.译者注,从用词上我就能感到作者对Matlab弄弄的厌恶).但是要注意这些不是官方的笔记,但是似乎能捕获Andrew Ng课程材料的相关内容.当然,如果你有时间和兴趣,可以参加Andrew Ng Coursera的机器学习课程.
如果你喜欢各种视频讲座,可以看Tom Mitchell的演讲视频.下面是是他最近的演讲视频,我(不是我)感觉他非常平易近人,我是他的脑残粉(没搞错的话,网上流行的台湾国立大学的机器学习视频是模仿Tom Mitchell的,Logo都差不多就左下角右上角加了个东西.是的,我又在吐槽了).
在这里,你不需要所有笔记和视频.一个有效的策略包含实战演练,适当时候参考上面笔记和视频.例如,当你遇到回归模型是现实,阅读Ng笔记的回归部分或看Mtichell的回归视频.
第三步 科学Python库概率
好吧.有了一点Python编程经验和机器学习理解后.除了Python还有很多开源的库用于处理机器学习实践.通常,这些是执行基本机器学习任务主要使用的Python库.
- numpy - N维数组是非常有用的
- pandas - Python数据分析库,包括结构例如dataframes
- matplotlib - 2D 绘图库生成出版质量图片
- scikit-learn - 用于数据分析和数据挖掘任务的机器学习算法.
学习这些的优秀资料如下:
- Scipy Lecture Notes by Gaël Varoquaux, Emmanuelle Gouillart, and Olav Vahtras
这个pandas的教程非常棒:
在下面的教程中你可能看到一些其他的库,比如说 Seaborn,一个基于Matplotlib的数据可视化库.上述包是广泛Python机器学习任务的核心,然而,让你在下面引用时,理解这些适应更多相关的包而不会懵.
第四步 开始Python机器学习
Python. √
Machine learning fundamentals. √
Numpy. √
Pandas. √
Matplotlib. √
吉时已到,我们开始使用python标准机器学习库–scikit-learn实现机器学习算法吧.
下面大多数教程和联系都在IPython(Jupyter)Notebook中实现.它是Python执行的一个交互式环境.这些IPython NOtebook可以选择在线预览或下载,并且在你电脑本地交互.
- iPython Notebook Overview from Stanford
另外请注意,下面教程来源于许多在线资源.所有Notebooks 都归功于作业,你发现没有正确工作,请让我知道,这种情况会尽快纠正.我非常想向Jake VanderPlas, Randal Olson, Donne Martin, Kevin Markham, and Colin Raffel等人致敬.因为他们神奇免费可用的资源(50字好评已给,请返现).
第一个教程从scikit-learn开始,在开始下面步骤之前,我建议先做这些.
scikit-learn库的一般介绍,Python中最常用的机器学习库,涵盖了KNN算法:
- An Introduction to scikit-learn by Jake VanderPlas
更深入的介绍,包括知名数据集开始到项目完成:
- Example Machine Learning Notebook by Randal Olson
重点放在scikit-learn中不同模型的评估策略,涵盖了训练集/测试集拆分(后面这句话的点没get到呢):
- Model Evaluation by Kevin Markham
第五步 python机器学习主题
有了 scikit-learn基础后,我们可以对常见,实用的算法做进一步深入了解.我们从K-means聚类开始,一个广为人知的机器学习算法.解决无监督学习问题一个简单有效的方法:
- k-means Clustering by Jake VanderPlas
接下来,我们看看分类问题.了解历史上最流行分类算法之一:
- Decision Trees via The Grimm Scientist
让我们看看连续数值预测:
- Linear Regression by Jake VanderPlas
我们可以从过Logistic回归解决分类问题:
- Logistic Regression by Kevin Markham
第六步 深入python机器学习主题
我们已经开始scikit-learn,现在让我们将注意转向高级主题.首先SVM(支持向量机).一个将复杂数据映射到高维空间的not-necessarily-linear分类
- Support Vector Machines by Jake VanderPlas
接下来,随机森林,一个组合分类,通过考察Kaggle Titanic竞赛逐步引导:
- Kaggle Titanic Competition (with Random Forests) by Donne Martin
降维是减少正在考虑问题中变量数目的方法.PCA(Principal Component Analysis,主成分分析)是一种非监督的降维方法:
- Dimensionality Reduction by Jake VanderPlas
在进入到最后一步之前,我们可以花时间考虑下,我们已经在相对较短的时间内走了很长一段路.
使用Python和它的机器学习库,我们已经介绍一些最常见和总所周知的机器学习算法(K-means,支持向量机,KNN),考察了强大的组合技术(随机森林),研究了支持任务的额外机器学习算法(降维,模型验证技术).随着这些基础的机器学习技巧的学习,我们已经拥有了一些使用的技能.
第七步 python深度学习
深度学习无处不在.深度学习构建与神经网络研究可以追溯到十几年前,但是追溯到过去几年的最新进展显著增加.如果你不熟悉深度学习,KDnuggets有很多文教详细介绍了众多最新创新,成就和令人赞誉的技术.
最后一步并不对深度学习软件分类,介绍2个引领当代Python深度学习库的几个简单的网络实现.对于有兴趣挖掘更深的深度学习者,我建议你先从一下免费书开始:
* Neural Networks and Deep Learning by Michael Nielsen
Theano
Theano是第一个Python深度学习库,按作者的话来说:
Theano是一个python的库,可以让你高效地定义,优化,评估包含多维数据的数学表达式.
下面Theano的机器学习入门教程是非常长的,但相当的棒,十分生动:
* Theano Deep Learning Tutorial by Colin Raffel
Caffe
另一个测试执行的库,caffe.同样的:
Caffe是一个带有表达式,速度和模块化的深度学习库.由 Berkeley Vision and Learning Center (BVLC) 和社区贡献者开发.
我们已经介绍了很多有趣的例子,这里再给出一个, 用Caffe实现Google’s #DeepDream.了解了这么多,自己动手放飞梦想吧(另外,关于深度学习的开源软件非常多,更多的可以看的翻译的GitHub深度学习库,你了解多少?).
我没不能保证这个过程会很快或很容易,但如果你把时间按照上面的7个步骤做,没有任何理由,你不能达到合理水平,理解一些机器学习算法并利用Python流行的库实现它,包括一些目前的深度学习研究前沿。