网络上有不少Python学习资源和机器学习学习资源,对于一个新手而言,如何开始呢?本篇文章将教你七步学会使用Python进行机器学习。 算法
万事开头难。面对纷繁万千的网络学习资源,不知如何下手,而每每第一步就开始眼花缭乱,不知所措。下面咱们将从一个新手的角度来指引你如何更好地选择免费的网络资源学习,以及采用何种学习顺序来掌握它。 编程
首先我假设,你在如下几个方面都是初学者: 数组
——机器学习 网络
——Python 框架
——任何Python的机器学习库/科学计算库/数据分析库 dom
若是你了解前面两个方面多是颇有帮助的,不过若是你对它们都一无所知的话,下面的前几个步骤是能够帮到你的。 机器学习
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