文档章节

七步教你Python进行机器学习

断桥残雪断桥残雪
 断桥残雪断桥残雪
发布于 2015/11/20 10:15
字数 1745
阅读 4057
收藏 15

网络上有很多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

© 著作权归作者所有

断桥残雪断桥残雪
粉丝 52
博文 139
码字总数 94909
作品 0
广州
程序员
私信 提问
Python实用教学:如何用Python玩转各大网站

Hi~,各位小伙伴,Python是目前编程语言中的主流语言之一,也是公认最容易入门的编程语言,因为Python语言近几年的火爆,有很多小伙伴都开始学习这门语言。 编程语言学习,最重要的是“多看代...

W3Cschool小编
2018/07/31
0
0
机器学习的最佳学习路线原来只有四步

AI这个词相信大家都非常熟悉,近几年来人工智能圈子格外热闹,光是AlphoGo就让大家对它刮目相看。今天小天就来跟大家唠一唠如何进军人工智能的第一步——机器学习。 在机器学习领域,Python已...

ufv59to8
2018/05/12
0
0
机器学习:最小二乘法实际应用的一个完整例子

整个过程分七步,为了方便喜欢直接copy代码看结果的同学,每步都放上了完整的代码。 实验数据: 第一步:准备样本数据并绘制散点图 1)代码及其说明 import numpy as npimport scipy as spim...

wangxuwei
2018/07/15
83
0
python和java哈希值区分

欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答、求职一站式搞定! 对商业智能BI、大数据分析挖掘、机器学习,python,R等数据领域感兴...

天善智能
2018/06/25
0
0
手把手教你用Kaggle开启机器学习之旅

我经常被朋友和大学生问到“如何入门机器学习或数据科学”。 所以,这是我的答案…… 前言 早些时候,我不太确定。我会说类似“学这门课”或“读这本教程”或“先学Python(这是我做过的事情...

技术小能手
2018/11/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

正则表达式匹配

请实现一个函数用来匹配包括 '.' 和 '*' 的正则表达式。模式中的字符 '.' 表示任意一个字符,而 '*' 表示它前面的字符可以出现任意次(包含 0 次)。 在本题中,匹配是指字符串的所有字符匹配...

Garphy
55分钟前
6
0
Laravel 5.1的多路由文件的配置

默认的路由配置文件只有一个, \app\Http\routes.php。 在同一个文件中写路由容易起冲突,文件会越来越大,就需要定义多个路由文件。 找到加载\app\Http\routes.php的文件, 打开\app\Provid...

mdoo
今天
5
0
Hibernate 5 开始使用指南前言

同时在面向对象软件和关系型数据库进行工作,可能会非常复杂和费时。数据在对象和数据库之间可能会不一致,然后导致开发成本会非常高。 Hibernate 是一个针对 Java 环境的对象关系映射(Obj...

honeymoose
今天
6
0
聊聊nacos ServiceManager的UpdatedServiceProcessor

序 本文主要研究一下nacos ServiceManager的UpdatedServiceProcessor ServiceManager.init nacos-1.1.3/naming/src/main/java/com/alibaba/nacos/naming/core/ServiceManager.java @Compone......

go4it
今天
7
0
正则表达式的使用(QQ格式的判断与空格的切割)

//正则表达式的使用 public static void main(String[] args) throws IOException, ClassNotFoundException { //test1("123456"); test2("-1 99 kk"); } /** * ......

zhengzhixiang
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部