Google出了一个面向新手的机器学习教程,每集六七分钟,言简意赅,只掌握最基础的Python语法知识,便可以实现一些基本的机器学习算法。接下来我准备分几次整理一下课程,和大家一起学习一下。
Machine learning recipes(一)
开始前,课程将用到两个Open source libraries—scikit-learn和Tensorflow。
接下来步入正题:写一个能区分苹果和橘子的代码,若写出大量规则是行不通的,因为现实生活中充满着不确定因素,制定的规则往往会被打破。所以我们需要一种算法能自动生成规则,这就需要训练一个分类器classifier(可以认为是一种方法:接收输入数据后给它们分配标签labels作为输出)。而用来实现分类器的技术称为监督学习(Supervised Learning)。
写这个分类器的代码要用到scikit-learn,推荐安装Anaconda的方法安装(个人认为最安装简单)。在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])
我们人为来预测一下会是什么?根据训练数据我们认为会是1即Orange
在Python中运行一下结果输出为
[1]
恭喜!我们用了6行代码就实现了一个机器学习程序!
作为练习,你可以再在另一个程序,改变训练数据,来创建一个新的分类器。数据如下,来动手练习一下吧!
你也会有疑问,为什么用水果特征来做训练数据而不用图片?
在后面的章节会提到,但是这次用的方法是最普遍的。
后续的课程我会继续和大家一起学习,有的小伙伴觉得节奏太慢忍不住要先学习一下,我把课程链接放在这里,方便小伙伴们自行观看学习!
传送门:http://i.youku.com/i/UMjczOTc0NDkzNg==/custom?id=87105
好了,以上就是本篇文章的所有内容了,强烈建议大家能够亲手实践一下,毕竟纸上得来终觉浅,绝知此事要躬行。由于我是个初学者水平有限,难免有错误疏漏。请不吝赐教,大家一起学习!最后感谢大家的阅读。