7个步骤掌握使用python进行机器学习

# 7个步骤掌握使用python进行机器学习 *有许多python机器学习资源在线免费提供.从哪开始?如何进行?从零到python机器学习大神只要7个步骤.* 作者Matthew Mayo.发表于KDnuggests. ---------- 入门.在英语中最打击人的两个单词.第一部往往是最难的,当在这方面有太多选择,通常让人崩溃. ![](http://www.kdnuggets.com/wp-content/uploads/data-scientist2.jpg) 从哪开始? 这篇文章旨在用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](http://learnpythonthehardway.org/book/) by Zed A. Shaw 如果你有变成经验,但是不是Python,或者你刚学Python,我建议学习下面其中一个或全部: > * [Google Developers Python Course](https://www.youtube.com/playlist?list=PLfZeRfzhgQzTMgwFVezQbnpc1ck0I6CQl) (视觉学习者强烈推荐,五星好评) > > * [An Introduction to Python for Scientific Computing (from UCSB Engineering)](http://www.engr.ucsb.edu/~shell/che210d/python.pdf) by M. Scott Shell (神奇的Python科学介绍,60页) 对于那些寻求Python30分钟速成班的可以去(某宝): > * [Learn X in Y Minutes (X = Python)](https://learnxinyminutes.com/docs/python/) 当然,如果你有Python编程经验,你可以跳过这步.即使这样,我建议你继续阅读Python文档. ## 第二步 基础机器学习技能 KDnuggets'的创始人 Zachary Lipton指出人们对数据科学家的认识非常不同.实际上是机器学习领域的反映,因为数据科学家的工作包含使用机器学习算法多样化程度.是否有必要深刻了解算法,从而更有效的创建SVM机器模型并从中获取信息?当然不是,就像生活中几乎所有东西,理论理解的深度的要求相对与实际应用(这是作者的一家之言哈~,译者是不支持的,不了解你怎么调参,优化模型呢?哈~).获得机器学习算法的深刻理解已经超出了本书范围,一般需要大量的时间投资在学术中,或者通过高强度的自学. 好消息是你不需要拥有PhD水平的机器学习理论方面的理解,才能用于实践.并不是所有码农都为了有效的编码需要理论的计算机科学教育.这两点是相同的(所以我翻译的是码农.对,我就是在吐槽~自己. :( ). Andrew Ng的Course课程经常获得五星好评.但是我的建议是,浏览在线课程以前学生编制的课程笔记.跳过关于Octave的笔记(类似Matlab语言,和我们追求的Python无关.译者注,从用词上我就能感到作者对Matlab弄弄的厌恶).但是要注意这些不是官方的笔记,但是似乎能捕获Andrew Ng课程材料的相关内容.当然,如果你有时间和兴趣,可以参加[Andrew Ng Coursera的机器学习课程](https://www.coursera.org/learn/machine-learning). > * [Unofficial Andrew Ng course notes](www.holehouse.org/mlclass/) 如果你喜欢各种视频讲座,可以看Tom Mitchell的演讲视频.下面是是他最近的演讲视频,我(不是我)感觉他非常平易近人,我是他的脑残粉(没搞错的话,网上流行的台湾国立大学的机器学习视频是模仿Tom Mitchell的,Logo都差不多就左下角右上角加了个东西.是的,我又在吐槽了). > * [Tom Mitchell Machine Learning Lectures](www.cs.cmu.edu/~ninamf/courses/601sp15/lectures.shtml) 在这里,你不需要所有笔记和视频.一个有效的策略包含实战演练,适当时候参考上面笔记和视频.例如,当你遇到回归模型是现实,阅读Ng笔记的回归部分或看Mtichell的回归视频. ## 第三步 科学Python库概率 好吧.有了一点Python编程经验和机器学习理解后.除了Python还有很多开源的库用于处理机器学习实践.通常,这些是执行基本机器学习任务主要使用的Python库. > * [numpy](http://www.numpy.org/) - N维数组是非常有用的 > * [pandas](http://pandas.pydata.org/) - Python数据分析库,包括结构例如dataframes > * [matplotlib](http://matplotlib.org/) - 2D 绘图库生成出版质量图片 > * [scikit-learn](http://scikit-learn.org/stable/) - 用于数据分析和数据挖掘任务的机器学习算法. 学习这些的优秀资料如下: > * [Scipy Lecture Notes](http://www.scipy-lectures.org/) by Gaël Varoquaux, Emmanuelle Gouillart, and Olav Vahtras 这个pandas的教程非常棒: > * [10 Minutes to Pandas](http://pandas.pydata.org/pandas-docs/stable/10min.html) 在下面的教程中你可能看到一些其他的库,比如说 Seaborn,一个基于Matplotlib的数据可视化库.上述包是广泛Python机器学习任务的核心,然而,让你在下面引用时,理解这些适应更多相关的包而不会懵. ## 第四步 开始Python机器学习 Python. √ Machine learning fundamentals. √ Numpy. √ Pandas. √ Matplotlib. √ 吉时已到,我们开始使用python标准机器学习库--scikit-learn实现机器学习算法吧. ![](http://www.kdnuggets.com/wp-content/uploads/scikit-learn.jpg) 下面大多数教程和联系都在IPython(Jupyter)Notebook中实现.它是Python执行的一个交互式环境.这些IPython NOtebook可以选择在线预览或下载,并且在你电脑本地交互. > * [iPython Notebook Overview](http://cs231n.github.io/ipython-tutorial/) 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](http://nbviewer.jupyter.org/github/donnemartin/data-science-ipython-notebooks/blob/master/scikit-learn/scikit-learn-intro.ipynb) by Jake VanderPlas 更深入的介绍,包括知名数据集开始到项目完成: > * [Example Machine Learning Notebook](http://nbviewer.jupyter.org/github/rhiever/Data-Analysis-and-Machine-Learning-Projects/blob/master/example-data-science-notebook/Example%20Machine%20Learning%20Notebook.ipynb) by Randal Olson 重点放在scikit-learn中不同模型的评估策略,涵盖了训练集/测试集拆分(后面这句话的点没get到呢): > * [Model Evaluation](https://github.com/justmarkham/scikit-learn-videos/blob/master/05_model_evaluation.ipynb) by Kevin Markham ## 第五步 python机器学习主题 有了 scikit-learn基础后,我们可以对常见,实用的算法做进一步深入了解.我们从K-means聚类开始,一个广为人知的机器学习算法.解决无监督学习问题一个简单有效的方法: > > * [k-means Clustering](https://github.com/jakevdp/sklearn_pycon2015/blob/master/notebooks/04.2-Clustering-KMeans.ipynb) by Jake VanderPlas 接下来,我们看看分类问题.了解历史上最流行分类算法之一: > * [Decision Trees](http://thegrimmscientist.com/2014/10/23/tutorial-decision-trees/) via The Grimm Scientist 让我们看看连续数值预测: > * [Linear Regression](http://nbviewer.jupyter.org/github/donnemartin/data-science-ipython-notebooks/blob/master/scikit-learn/scikit-learn-linear-reg.ipynb) by Jake VanderPlas 我们可以从过Logistic回归解决分类问题: > * [Logistic Regression](http://nbviewer.jupyter.org/github/justmarkham/gadsdc1/blob/master/logistic_assignment/kevin_logistic_sklearn.ipynb) by Kevin Markham ## 第六步 深入python机器学习主题 我们已经开始scikit-learn,现在让我们将注意转向高级主题.首先SVM(支持向量机).一个将复杂数据映射到高维空间的not-necessarily-linear分类 > * [Support Vector Machines](https://github.com/jakevdp/sklearn_pycon2015/blob/master/notebooks/03.1-Classification-SVMs.ipynb) by Jake VanderPlas 接下来,随机森林,一个组合分类,通过考察Kaggle Titanic竞赛逐步引导: > * [Kaggle Titanic Competition (with Random Forests)](http://nbviewer.jupyter.org/github/donnemartin/data-science-ipython-notebooks/blob/master/kaggle/titanic.ipynb) by Donne Martin 降维是减少正在考虑问题中变量数目的方法.PCA(Principal Component Analysis,主成分分析)是一种非监督的降维方法: > * [Dimensionality Reduction](https://github.com/jakevdp/sklearn_pycon2015/blob/master/notebooks/04.1-Dimensionality-PCA.ipynb) by Jake VanderPlas 在进入到最后一步之前,我们可以花时间考虑下,我们已经在相对较短的时间内走了很长一段路. 使用Python和它的机器学习库,我们已经介绍一些最常见和总所周知的机器学习算法(K-means,支持向量机,KNN),考察了强大的组合技术(随机森林),研究了支持任务的额外机器学习算法(降维,模型验证技术).随着这些基础的机器学习技巧的学习,我们已经拥有了一些使用的技能. ## 第七步 python深度学习 ![](http://www.kdnuggets.com/wp-content/uploads/deep-learning.png) 深度学习无处不在.深度学习构建与神经网络研究可以追溯到十几年前,但是追溯到过去几年的最新进展显著增加.如果你不熟悉深度学习,KDnuggets有很多文教详细介绍了众多最新创新,成就和令人赞誉的技术. 最后一步并不对深度学习软件分类,介绍2个引领当代Python深度学习库的几个简单的网络实现.对于有兴趣挖掘更深的深度学习者,我建议你先从一下免费书开始: * [Neural Networks and Deep Learning](http://neuralnetworksanddeeplearning.com/) by Michael Nielsen [Theano](http://deeplearning.net/software/theano/) Theano是第一个Python深度学习库,按作者的话来说: > Theano是一个python的库,可以让你高效地定义,优化,评估包含多维数据的数学表达式. 下面Theano的机器学习入门教程是非常长的,但相当的棒,十分生动: > * [Theano Deep Learning Tutorial](http://nbviewer.jupyter.org/github/craffel/theano-tutorial/blob/master/Theano%20Tutorial.ipynb) by Colin Raffel [Caffe](http://caffe.berkeleyvision.org/) 另一个测试执行的库,caffe.同样的: > Caffe是一个带有表达式,速度和模块化的深度学习库.由 Berkeley Vision and Learning Center (BVLC) 和社区贡献者开发. 我们已经介绍了很多有趣的例子,这里再给出一个, 用Caffe实现[Google's #DeepDream](http://googleresearch.blogspot.ch/2015/06/inceptionism-going-deeper-into-neural.html).了解了这么多,自己动手放飞梦想吧(另外,关于深度学习的开源软件非常多,更多的可以看的翻译的[GitHub深度学习库,你了解多少?](http://blog.csdn.net/er8cjiang/article/details/50983327)). > * [Dreaming Deep with Caffe](https://github.com/google/deepdream/blob/master/dream.ipynb) via [Google's GitHub](https://github.com/google) 我没不能保证这个过程会很快或很容易,但如果你把时间按照上面的7个步骤做,没有任何理由,你不能达到合理水平,理解一些机器学习算法并利用Python流行的库实现它,包括一些目前的深度学习研究前沿。

浪1b

赞同来自:

大神您好,还不会python,学习python用什么书比较好

要回复问题请先登录注册