Iris是一个经典的机器学习入门数据集,本片博客将讲述如何使用该数据集,用极其简单的代码来实现一个简单的机器学习的例子。
本文适合有一丢丢python基础的同学学习
实验需求:安装好 anaconda(这家伙自带了很多科学计算的module,是机器学习必备神器)
本数据集可在网站:https://en.wikipedia.org/wiki/Iris_flower_data_set#Data_set 查看,当然导入数据集并不需要这么麻烦,稍后会讲解。
预备知识
机器学习的步骤大致分为3步:
1、导入数据集
2、通过数据集建立决策树
3、使用数据进行预测
准备工作:
首先打开anaconda的spyder,并新建python文件准备写代码。
正式开始:
导入数据集:并不需要去网上下载,或者粘贴复制,很麻烦的,直接从库里导入就好了。
from sklearn.datasets import load_iris
iris = load_iris()
这时数据集已经保存到变量 iris
中了,iris
是什么类型呢?
type(iris)
输出为 sklearn.utils.Bunch
数据集中共有数据150组,花的品种共有三种,每一朵花的特征有四个,每一个品种的数据分别都是50组。
这时我们需要从数据集中选出3组数据,用来最后的测试,且这3组数据不用来作为决策树的训练数据,仅用于最后的测试。
代码如下:
import numpy as np
from sklearn.datasets import load_iris
iris = load_iris()
#test_idx是测试数据的下标
test_idx = [0,50,100]
#训练数据,train_target是结果,train_data是特征
train_target = np.delete(iris.target, test_idx)
train_data = np.delete(iris.data, test_idx, axis=0)
#测试数据
test_target = iris.target[test_idx]
test_data = iris.data[test_idx]
接下来就是建立决策树了
import numpy as np
from sklearn.datasets import load_iris
from sklearn import tree
iris = load_iris()
test_idx = [0,50,100]
#training data
train_target = np.delete(iris.target, test_idx)
train_data = np.delete(iris.data, test_idx, axis=0)
#testing data
test_target = iris.target[test_idx]
test_data = iris.data[test_idx]
#建立决策树
clf = tree.DecisionTreeClassifier()
clf.fit(train_data,train_target)
决策树建立好后,我们就可以来测试机器学习的正确性如何了,因此在最后加上如下两行代码:
print(test_target)
print(clf.predict(test_data))
第一行代码用来输出测试数据的正确结果,第二行代码输出决策树学习之后预测的结果
最后的输出是:
[0 1 2]
[0 1 2]
预测成功!!
视频教程:https://www.bilibili.com/video/av7214214/ ,感谢google大法的视频,也感谢二进制小分队提供的翻译
源代码查看:https://github.com/yinyoupoet/LearnML/blob/master/ML_2.py