The Steps of Machine Learning with Python

Python机器学习七步走
本文提供了一个循序渐进的指南,通过七个步骤帮助初学者掌握Python机器学习的基础知识和实战技能,覆盖了从Python编程到深度学习的多个方面。

开始。这是最容易令人丧失斗志的两个字。迈出第一步通常最艰难。当可以选择的方向太多时,就更让人两腿发软了。

从哪里开始?

本文旨在通过七个步骤,使用全部免费的线上资料,帮助新人获取最基本的 Python 机器学习知识,直至成为博学的机器学习实践者。这篇概述的主要目的是带领读者接触众多免费的学习资源。这些资源有很多,但哪些是最好的?哪些相互补充?怎样的学习顺序才最好?我假定本文的读者不是以下任何领域的专家:

▪  机器学习 

▪  Python 

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

如果你有前两个领域其一或全部的基础知识,可能会很有帮助,但这些也不是必需的。在下面几个步骤中的前几项多花点时间就可以弥补。

第一步:基本 Python 技能

如果要使用 Python 进行机器学习,拥有对 Python 有基础的理解非常关键。幸运的是,Python 是当前普遍使用的流行语言,并纳入了科学计算和机器学习的内容,所以找到入门教程并不困难。在选择起点时,很大程度上要取决于你之前的 Python 经验和编程经验。

首先要安装 Python 。由于我们要使用机器学习和科学计算的 packages ,这里建议安装  Anaconda 。Anaconda 是一个可在 Linux , OSX , Windows 上运行的 Python 实现工具,拥有所需的机器学习 packages ,包括 numpy,scikit-learn,matplotlib。它还包含iPython Notebook ,一个带有许多教程的交互式环境。这里推荐使用 Python 2.7 ,不是因为特殊原因,只是因为它是目前安装版本中的主流。

如果你之前没有编程知识,建议你阅读这本免费电子书,然后再接触其他学习材料:

▪   Python The Hard Way 作者Zed A. Shaw

如果你之前有编程知识,但不是Python的,又或者你的Python水平很基础,推荐下列一种或几种教程:

▪   Google Developers Python Course ((强烈推荐给视觉型学习者)

▪ An Introduction to Python for Scientific Computing (from UCSB Engineering) 作者 M. Scott Shell (一个很好的 Python 科学计算简介,60 页)

对于想要速成课程的人,这里有:

▪   Learn X in Y Minutes (X = Python)

当然,如果你是个经验丰富的Python程序员,可以跳过这一步。尽管如此,还是建议你把通俗易懂的  Python documentation   放在手边。

第二步:机器学习基础技能

KDnuggets 的 Zachary Lipton 指出,人们对于“数据科学家”的认知千差万别。这实际上是对机器学习领域的反映。数据科学家在不同程度上使用计算学习算法。要建立和使用支持向量机模型,熟知 核函数方法是否是必需的? 答案当然不是。就像现实生活中的许多事情一样,所需要的理论深入程度与具体的实际应用有关。获取对机器学习算法的深入理解不是本文的讨论范围, 而且这通常需要在学术领域投入大量时间,或者至少要通过密集的自学才能达到。

好消息是,你不必拥有博士级别的机器学习理论能力才能进行实践,就如同不是所有程序员都必须接受计算机理论教育才能写好代码。

吴恩达在 Coursera 的课程饱受赞誉。但我的建议是去看看一名以前的学生做的笔记。略过那些针对 Octave(一个与 Python 无关的,类 Matlab 语言)的内容。需要注意,这些不是“官方”的笔记,虽然看起来的确抓住了吴恩达课程材料的相关内容。如果你有时间,可以自己去 Coursera 完成这个课程 : Andrew Ng’s Machine Learning course 。

▪   非官方课程笔记 链接

除了吴恩达的课程以外,还有很多其他视频教程。我是Tom Mitchell的粉丝,下面是他(与Maria-Florina Balcan共同完成的)最新的课程视频,对学习者非常友好:

▪ Tom Mitchell Machine Learning Lectures

你不需要现在看完全部的笔记和视频。比较好的策略是向前推进,去做下面的练习,需要的时候再查阅笔记和视频。比如,你要做一个回归模型,就可以去查阅吴恩达课程有关回归的笔记以及/或者Mitchell的视频。

第三步:科学计算 Python packages 一览

好了。现在我们有了 Python 编程经验,并对机器学习有所了解。Python 有很多为机器学习提供便利的开源库。通常它们被称为Python科学库( scientific Python libraries ),用以执行基本的数据科学任务(这里有一点程度主观色彩):

▪ numpy – 主要用于N维数组

▪ pandas – Python数据分析库,包含dataframe等结构

▪ matplotlib – 2D绘图库,产出质量足以进行印刷的图

▪ scikit-learn – 数据分析、数据挖掘任务使用的机器学习算法

学习以上这些内容可以使用:

▪ Scipy Lecture Notes 作者 Gaël Varoquaux, Emmanuelle Gouillart, Olav Vahtras

下面这个pandas教程也不错,贴近主题:

▪ 10 Minutes to Pandas

在后面的教程中你会看到其他一些packages,比如包括Seaborn,一个基于matplotlib的可视化库。前面提到的packages (再次承认具有一定主观色彩)是许多Python机器学习任务的核心工具。不过,理解它们也可以让你在之后的教程中更好理解其他相关packages。

好了,现在到了有意思的部分…..

第四步:开始用Python进行机器学习

Python。搞定。

机器学习基础。搞定。

Numpy。搞定。

Pandas。搞定。

Matplotlib。搞定。

是时候用Python的标准机器学习库,scikit-learn,实现机器学习算法了。

scikit-learn 算法选择图

下面许多教程和练习都基于交互式环境iPython (Jupyter) Notebook。这些iPython Notebooks有些可以在网上观看,有些可以下载到本地电脑。

▪   iPython Notebook 概览 斯坦福大学

也请注意下面的资源来自网络。所有资源属于作者。如果出于某种原因,你发现有作者没有被提及,请告知我,我会尽快改正。在此特别要向 Jake VanderPlas Randal Olson , Donne Martin , Kevin Markham , Colin Raffel 致敬,感谢他们提供的优秀免费资源。

下面是scikit-learn的入门教程。在进行下一个步骤之前,推荐做完下列全部教程。

对于scikit-learn的整体介绍,它是Python最常用的通用机器学习库,包含knn最近邻算法:

▪   An Introduction to scikit-learn 作者 Jake VanderPlas

更深入更宽泛的介绍,包含一个新手项目,从头到尾使用一个著名的数据集:

▪   Example Machine Learning Notebook 作者Randal Olson

专注于scikit-learn中评估不同模型的策略,涉及训练集/测试集拆分:

▪   Model Evaluation 作者 Kevin Markham

第五步:Python机器学习主题

在scikit-learn打下基础以后,我们可以探索更多有用的常见算法。让我们从最知名的机器学习算法之一,k-means聚类开始。对于无监督学习问题,k-means通常简单有效:

▪   k-means Clustering 作者Jake VanderPlas

接下来是分类,让我们看看史上最流行的分类方法之一,决策树:

▪   Decision Trees via  The Grimm Scientist

分类之后,是连续数字变量的预测:

▪   Linear Regression 作者 Jake VanderPlas

通过逻辑斯蒂回归,我们可以用回归解决分类问题:

▪   Logistic Regression 作者Kevin Markham

第六步:Python高级机器学习

接触过scikit-learn,现在让我们把注意力转向更高级的内容。首先是支持向量机,一个无需线性的分类器,它依赖复杂的数据转换,把数据投向高维空间。

▪   Support Vector Machines 作者 Jake VanderPlas

接下来是随机森林,一种集成分类器。下面的教程通过 Kaggle Titanic Competition 讲解。

▪   Kaggle Titanic Competition (with Random Forests) 作者 Donne Martin

降维是一种减少问题涉及的变量数目的方法。PCA主成分分析是一种无监督学习降维的特殊形式:

▪   Dimensionality Reduction 作者 Jake VanderPlas

在开始下一步之前,可以暂停一下,回想我们在短短的时间已经走了多远。通过使用Python和它的机器学习库,我们涵盖了一些最常用最知名的机器学习算法(knn最近邻,k-means聚类,支持向量机),了解了一种强有力 的集成方法(随机森林),涉及了一些其他机器学习支持方案(降维,模型验证技巧)。在一些基础机器学习的技巧的帮助下,我们开始有了一个渐渐丰富的工具 箱。

在结束以前,让我们给工具箱增加一个需求很大的工具:

第七步 :Python深度学习

学习,深深地 

到处都在深度学习!深度学习基于过去几十年的神经网络研究,但最近几年的发展大大增加了深度神经网络的能力和对于它的兴趣。如果你不熟悉深度学习,KDnuggets 有 许多文章 ,详细介绍最近的进展、成果,以及对这项技术的赞誉。

本文的最后一部分并不想成为某种深度学习示范教程。我们会关注基于两个Python深度学习库的简单应用。对于想了解更多的读者,我推荐下面这本免费在线书:

▪   Neural Networks and Deep Learning 作者  Michael Nielsen

Theano

Theano是我们关注的第一个Python深度学习库。根据作者所说:

作为一个Python库,Theano让你可以有效定义、优化、评估包含多维数组的数学表达式。

下面的Theano深度学习教程很长,但非常不错,描述详细,有大量评论:

▪   Theano Deep Learning Tutorial 作者  Colin Raffel

Caffe

我们关注的另一个库是Caffe。根据它的作者所说:

Caffe是一个深度学习框架。开发过程中时刻考虑着表达式、速度、模型。 它是由Berkeley Vision and Learning Center (BVLC) 和社区贡献者共同开发的。

这个教程是本文的压轴。尽管上面列举了一些有趣的案例,没有那个比得上下面这个:用Caffe实现 Google 的 #DeepDream 。希望你喜欢!理解这个教程以后,尽情玩乐,让你的处理器开始自己做梦吧。

▪   Dreaming Deep with Caffe via  Google’s GitHub

我不敢保证Python机器学习是速成的或简单的。但只要投入时间,遵循这七个步骤,你无疑会对于这个领域拥有足够的熟练度和理解,会使用流行的Python库实现许多机器学习算法,甚至当今深度学习领域的前沿内容。

作者简介:  Matthew Mayo 是一名计算机专业的研究生。他目前在从事并行机器学习算法方面的论文工作。同时他也是一个数据挖掘学习者,数据爱好者,立志成为机器学习科学家。

翻译:王鹏宇
原文链接:

http://www.kdnuggets.com/2015/11/seven-steps-machine-learning-python.html

感谢 数据工匠 的投稿,如果您也有兴趣在数盟发布文章,欢迎联系我们:contact@dataunion.org

### Kaggle Machine Learning Datasets and Tutorials Kaggle is a platform that provides an extensive collection of datasets, kernels (notebooks), and competitions to help individuals learn about data science and machine learning[^1]. The following sections outline the resources available on Kaggle related to machine learning. #### Datasets Kaggle hosts numerous datasets covering various domains such as healthcare, finance, social media analysis, etc. These datasets are curated by both organizations and individual contributors. Users can download these datasets directly from the website or use APIs provided by Kaggle for programmatic access[^2]. For example, one popular dataset often used in beginner-level projects includes Titanic: Machine Learning from Disaster where participants predict survival outcomes based on passenger information like age, gender, class, fare paid among others. #### Tutorials & Kernels Tutorials come under two categories - guided courses offered through partnership with experts which require registration but offer certification upon completion; secondly there exist community-contributed notebooks known as 'kernels'. Guided Courses cover topics ranging from introductory Python programming all way up advanced neural networks while Community Notebooks provide practical examples demonstrating how specific algorithms work using real-world problems alongside code snippets written primarily either R or python language depending user preference: Here’s a simple illustration showing logistic regression implementation within Jupyter Notebook environment utilizing Scikit-Learn library over Iris flower classification problem: ```python from sklearn.datasets import load_iris from sklearn.linear_model import LogisticRegression from sklearn.model_selection import train_test_split import numpy as np # Load iris dataset data = load_iris() X_train, X_test, y_train, y_test = train_test_split(data.data, data.target) clf = LogisticRegression(random_state=0).fit(X_train, y_train) print(f'Accuracy Score:{np.round(clf.score(X_test,y_test)*100)}%') ``` This script demonstrates loading IRIS sample set into memory then splitting it randomly between training/testing groups before applying standard binary classifier algorithm called Logit Regression finally printing out accuracy percentage achieved during evaluation phase against unseen test cases not part original teaching material given earlier stages process pipeline execution flow sequence order steps taken here shown above clearly explained manner easy understand follow along practice try yourself home computer system setup ready go start experimenting immediately once installed necessary software packages required run successfully without errors encountered runtime exceptions thrown unexpected situations arise need troubleshooting resolve quickly efficiently move forward continue learning journey path success achieve goals aspirations dreams become reality true!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值