天天看点

机器学习入门——Iris问题

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]      

继续阅读