七步教你Python进行机器学习

原创
2015/11/20 10:15
阅读数 4.4K

网络上有很多Python学习资源和机器学习学习资源,对于一个新手而言,如何开始呢?本篇文章将教你七步学会使用Python进行机器学习。

万事开头难。面对纷繁万千的网络学习资源,不知如何下手,而往往第一步就开始眼花缭乱,不知所措。下面我们将从一个新手的角度来指引你如何更好地选择免费的网络资源学习,以及采用何种学习顺序来掌握它。

首先我假设,你在以下几个方面都是初学者:

——机器学习

——Python

——任何Python的机器学习库/科学计算库/数据分析库

如果你了解前面两个方面可能是很有帮助的,不过如果你对它们都一无所知的话,下面的前几个步骤是可以帮到你的。


1 Python基础


如果我们想要使用Python进行机器学习的话,掌握Python的基础知识是必不可少的。幸运的是,作为一个通用的流传度较广的语言,Python的教程是很容易找到的,你只是需要寻找一个比较好的学习起点。

首先,你需要安装Python。因为我们需要使用科学计算库和机器学习库,所以我建议你安装Anaconda,它是一个实现Python的强大的工业产品,适用于Linux/OSX/Windows,完全包含机器学习库/科学计算库,包括numpy/scikit-learn/matplotlib,同时它也包括iPython Notebook(一个Python教程的交互界面)。同时我建议使用Python2.7版本,因为这是一个当下用户安装的主流版本。

如果你没有任何编程基础知识,建议你从以下书籍学起,它们都是可以从互联网上免费下载的:


Python The Hard Way by Zed A. Shaw


如果你具有一定的编程基础,只是对Python不熟悉,那么你可以采取以下的教程:

Google Developers Python Course (highly recommended for visual learners)

An Introduction to Python for Scientific Computing (from UCSB Engineering)by M. Scott Shell (a great scientific Python intro ~60 pages)

Learn X in Y Minutes (X = Python)


如果你十分熟悉Python的话,你完全可以跳过第一步,当然我建议你还是 多阅读Python Documentation.


2 机器学习基础


数据科学家通常有很多种定义,许多人学习机器学习算法去分类。首先,很有必须去学习一下Kernel methods,难道是为了更加深刻地理解如何构建一个support vector model吗?当然不是,就像生活中的大部分事务一样,每一个深厚的理论一定对应着实际的应用。

如果你时间较充足的话,需要去学习一下斯坦福大学的 Andrew Ng's Machine Learning course以及这个课程的非官方笔记(一些学生总结的)。你不需要掌握课程视频中每个细节,你只需要学会如何去运用即可。比如当你遇到一个回归分析的问题时候,你可以回过头来看Ng的回归分析那一部分的讲解。


3 Python科学计算库


当我们进行机器学习时,一些Python的科学计算库是经常需要用到的,如下所列:

numpy - 处理N维数组时很有用
pandas - 数据分析库
matplotlib - 高质量做图
scikit-learn - 机器学习算法库

一个好的学习以上知识的资源是:

Scipy Lecture Notes by Gaël Varoquaux, Emmanuelle Gouillart, and Olav Vahtras

以及

10 Minutes to Pandas

从以上教程中,你将会学习到那些科学计算库的使用。


4 开始动手使用Python进行机器学习


我们首先从scikit-learn库开始学习机器学习算法。

以下一些教程或练习都是可以在iPython Notebook中练习,它是一个交互式的可以编译运行Python的环境。

下面将提供一些免费的scikit-learn学习资源:

一个对scikit-learn的简单介绍,包括大部分机器学习算法:

An Introduction to scikit-learn by Jake VanderPlas

一个更加深入一点的介绍,包括从头到尾用一个著名的数据集来做一个项目:

Example Machine Learning Notebook by Randal Olson

聚焦在评估scikit-learn中不同模型,包括训练和测试数据集:

Model Evaluation by Kevin Markham


5 有关Python的机器学习话题


当我们有了scikit-learn的初步基础以后,我们可以更加深入地去探索一些常用的算法。我们从K-means集群算法开始,它是一个简单有效的算法来解决无监督问题:

k-means Clustering by Jake VanderPlas


然后我们回到分类问题上,探讨一个著名的决策树分类算法:

Decision Trees via The Grimm Scientist


从分类我们可以看出连续的数值预测:

Linear Regression by Jake VanderPlas


我们可以进行分类问题的探索,例如逻辑回归:

Logistic Regression by Kevin Markham


6 高级的与Python有关的机器学习话题


首先我们需要学习SVM,它是一个线性/非线性分类器,依赖于将数据进行复杂的变换使得维度更高。

Support Vector Machines by Jake VanderPlas


然后学习另一个分类器:随机森林

Kaggle Titanic Competition (with Random Forests) by Donne Martin


降维通常也是一个处理问题的常见方法,可以学习一下主成份分析(PCA),用于无监督的降低维度:

Dimensionality Reduction by Jake VanderPlas


在进行最后一步之前,我们来回顾一下我们学习了哪些内容:

通过使用Python以及它的机器学习库,我们学到了著名的机器学习算法(K-最邻近算法,K-means集群分类算法,SVM),研究了随机森林,学习了如何对数据降低维度,伴随着理论学习的同时,我们也掌握了一些实用的工具。


7 用Python进行深度学习




深度学习无处不在!深度学习建立在神经网络之上,它的研究已经有很多年了,但是最近几年特别火,如果你对深度学习不了解,可以看一些 KDnuggets 的文章。

最后一步主要是提供一些深度学习的资料给那些对深度学习感兴趣的同学。

Neural Networks and Deep Learning by Michael Nielsen


Theano包是第一个Python的用于深度学习的库。下面这个教程是非常适合学习Theano的:

Theano Deep Learning Tutorial by Colin Raffel


Caffe是一个深度学习框架,以表达形式/速度出名。以下教程是一个非常有意思的Caffe教程:

Dreaming Deep with Caffe via Google's GitHub



总结:我不能保证快和容易,但是如果你花时间进行以上七步,你没有理由不会掌握机器学习理论以及如何使用Python进行机器学习。

出自:Matthew Mayo

展开阅读全文
打赏
1
16 收藏
分享
加载中
更多评论
打赏
0 评论
16 收藏
1
分享
返回顶部
顶部