Google出了一个面向新手的机器学习教程,每集六七分钟,言简意赅,只掌握最基础的Python语法知识,便可以实现一些基本的机器学习算法。
Machine learning recipes(一)
开始前,课程将用到两个开源的库文件—scikit-learn和Tensorflow。
接下来步入正题:写一个能区分苹果和橘子的代码,若写出大量规则是行不通的,因为现实生活中充满着不确定因素,制定的规则往往会被打破。所以我们需要一种算法能自动生成规则,这就需要训练一个分类器classifier(可以认为是一种方法:接收输入数据后给它们分配标签labels作为输出)。而用来实现分类器的技术称为监督学习(Supervised Learning)。
写这个分类器的代码要用到scikit-learn这个Python包。
安装scikit-learn之前,要先安装Numpy+MKL、Scipy这两个包,进入加州大学实验室的网站: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。
下载Numpy的安装包
下载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
安装numpy包
安装scipy包
最后,在上面说到的加州大学实验室网站下载并安装scikit-learn:
pip install scikit_learn-0.19.0-cp35-cp35m-win_amd64.whl
下载scikit-learn的安装包
安装scikit-learn包
在Python中输入:
import sklearn
若没有报错则说明安装成功!
那么首先用第1行代码:引用分类器(决策树)后面解释
from sklearn import tree
对于监督学习有几个基本步骤我们得去实现:
Step1:Collect Training Data(收集训练数据)
Step2:Train Classifier(训练分类器)
Step3:Make Predictions(作出预测)
Step1:Collect Training Data(收集训练数据)
拥有越多的训练数据,我们的分类器就能工作越好。
下面用第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,后面课程会深入解释。
在第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]))
程序的6行代码
我们人为来预测一下会是什么?根据训练数据我们认为会是1即Orange
在Python中运行一下结果输出为
[1]
恭喜!我们用了6行代码就实现了一个机器学习程序!
作为练习,你可以再在另一个程序,改变训练数据,来创建一个新的分类器。数据如下,来动手练习一下吧!
你也会有疑问,为什么用水果特征来做训练数据而不用图片?
在后面的章节会提到,但是这次用的方法是最普遍的。
后续的课程我会继续和大家一起学习,有的小伙伴觉得节奏太慢忍不住要先学习一下,我把课程链接放在这里,方便小伙伴们自行观看学习!
传送门:http://i.youku.com/i/UMjczOTc0NDkzNg==/custom?id=87105
好了,以上就是本篇文章的所有内容了,强烈建议大家能够亲手实践一下,毕竟纸上得来终觉浅,绝知此事要躬行。最后感谢大家的阅读。