六行代码实现你的第一个机器学习程序!

浏览: 1449

Google出了一个面向新手的机器学习教程,每集六七分钟,言简意赅,只掌握最基础的Python语法知识,便可以实现一些基本的机器学习算法。

image.png

Machine learning recipes(一)

开始前,课程将用到两个开源的库文件—scikit-learn和Tensorflow。

接下来步入正题:写一个能区分苹果和橘子的代码,若写出大量规则是行不通的,因为现实生活中充满着不确定因素,制定的规则往往会被打破。所以我们需要一种算法能自动生成规则,这就需要训练一个分类器classifier(可以认为是一种方法:接收输入数据后给它们分配标签labels作为输出)。而用来实现分类器的技术称为监督学习(Supervised Learning)。

写这个分类器的代码要用到scikit-learn这个Python包。

安装scikit-learn之前,要先安装Numpy+MKLScipy这两个包,进入加州大学实验室的网站:http://www.lfd.uci.edu/~gohlke/pythonlibs/ ,分别找到Numpy、Scipy这两个包的下载链接,然后下载whl格式的安装文件。

注意下载安装文件的版本号要和电脑上的Python版本相对应,比如小编的电脑是64位操作系统,Python是3.5版本的,下载的安装文件是numpy-1.13.1+mkl-cp35-cp35m-win_amd64.whl、scipy-1.0.0b1-cp35-cp35m-win_amd64.whl。

image.png

下载Numpy的安装包

image.png

下载Scipy的安装包

在安装Python的包以前,我们要确认电脑上的Python中有pip模块,这样我们才能使用whl文件安装Python包。

下载好安装文件以后,在“开始”菜单的“运行”里面输入“cmd”打开DOS命令行,在DOS命令行下面进入刚才下载安装文件的文件夹,分别输入下面两个命令,安装Numpy、Scipy这两个包:

pip install numpy-1.13.1+mkl-cp35-cp35m-win_amd64.whl

pip install scipy-1.0.0b1-cp35-cp35m-win_amd64.whl

image.png

安装numpy包

image.png

安装scipy包

最后,在上面说到的加州大学实验室网站下载并安装scikit-learn:

pip install scikit_learn-0.19.0-cp35-cp35m-win_amd64.whl

image.png

下载scikit-learn的安装包

image.png

安装scikit-learn包

在Python中输入:

import sklearn

若没有报错则说明安装成功!

那么首先用第1行代码:引用分类器(决策树)后面解释

from sklearn import tree

对于监督学习有几个基本步骤我们得去实现:

Step1:Collect Training Data(收集训练数据)

Step2:Train Classifier(训练分类器)

Step3:Make Predictions(作出预测)

Step1:Collect Training Data(收集训练数据)

image.png

拥有越多的训练数据,我们的分类器就能工作越好。

下面用第2、3行代码表示训练数据,定义两个变量:features特征和labels标签并处理一下特性数据用整数而不用字符串,0代表Bumpy;1代表Smooth;0代表Apple;1代表橘子。

features = [[140, 1], [130, 1], [150, 0], [170, 0]]

labels = [0, 0, 1, 1]

Step2:Train Classifier(训练分类器)

这里用到的分类器类型为决策树Decision Tree,后面课程会深入解释。

image.png

第4行代码中创建一个分类器:

clf = tree.DecisionTreeClassifier()

 

第5行代码来训练分类器:

clf = clf.fit(features, labels)

现在就有了一个训练好的分类器啦!

Step3:Make Predictions(作出预测)

下面用最后一行第6行代码我们用训练好的分类器预测一个水果Weight:150g,表皮Bumpy的水果是什么?如果输出为0则为Apple,1为Orange。

print clf.predict([150, 0])

注意:如果你用的是Python3,需要将第六行代码改为:

print(clf.predict([150, 0]))

image.png

程序的6行代码

我们人为来预测一下会是什么?根据训练数据我们认为会是1即Orange

在Python中运行一下结果输出为

[1]

image.png

恭喜!我们用了6行代码就实现了一个机器学习程序!

作为练习,你可以再在另一个程序,改变训练数据,来创建一个新的分类器。数据如下,来动手练习一下吧!

image.png

你也会有疑问,为什么用水果特征来做训练数据而不用图片?

image.png

在后面的章节会提到,但是这次用的方法是最普遍的。

后续的课程我会继续和大家一起学习,有的小伙伴觉得节奏太慢忍不住要先学习一下,我把课程链接放在这里,方便小伙伴们自行观看学习!

传送门:http://i.youku.com/i/UMjczOTc0NDkzNg==/custom?id=87105

好了,以上就是本篇文章的所有内容了,强烈建议大家能够亲手实践一下,毕竟纸上得来终觉浅,绝知此事要躬行。最后感谢大家的阅读。

image.png

推荐 2
本文由 李亮辰 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册