决策树之鸢尾花卉实例解析

1、介绍

以sklearn数据集中的鸢尾花卉Iris数据集为例,解析决策树。

鸢尾花卉Iris数据集中有150个样本(示例),4个特征(属性),1个标签(类别变量)。以此150个样本为训练样本得到相应的决策树。

首先,明确一下数据集中的内容。

通过以下代码可以查看:

鸢尾花数据分析及可视化R语言 鸢尾花数据分析论文_分类器

解说:

①from sklearn.datasets import load_iris,从sklearn数据集模块导出鸢尾花卉数据集。

②iris = load_iris(),下载鸢尾花卉数据集。

③print iris.data,显示鸢尾花卉数据集中的4个特征,结果显示为

[[5.1  3.5 1.4  0.2]

 [ 4.9 3.   1.4  0.2]

 [ 4.7 3.2  1.3  0.2]

 [ 5.9 3.   5.1  1.8]]

是个150行,4列的一个矩阵。

④print iris.target显示鸢尾花卉数据集中的标签,结果显示为

[0 0 0…2]

是个1行,150列的一个矩阵。

⑤print iris.feature_name, 显示特征向量

['sepal length (cm)', 'sepal width (cm)', 'petal length(cm)', 'petal width (cm)']

 

⑥print iris.target_names显示标签名字,结果显示为

['setosa''versicolor' 'virginica']

总结:

 

特征1

特征2

特征3

特征4

标签

物理含义

花萼长度

花萼宽度

花瓣长度

花瓣宽度

鸢尾花种类

对应英文

SepalLength

SepalWidth

PetalLength

PetalWidth

Class

存储形式

float

float

float

float

int

鸢尾花种类可取值0、1、2,分别代表山鸢尾setosa、变色鸢尾versicolor、维吉尼亚鸢尾virginica。

 

2、训练决策树实现鸢尾花分类

DecisionTreeClassifier:sklearn机器学习包中,决策树实现类是DecisionTreeClassifier,实现对数据集的多类分类。输入参数为两个数组x_train和y_train, x_train为训练数据,y_train为训练数据的标签,用于训练分类器。

train_test_split:将原始数据将其按一定比例随机分为x_train和x_test。x_test为测试数据,用于测试分类器。好的做法是多次随机划分x_train和x_test,根据y_test的测试结果和本身固有结果比较来衡量分类器的好坏。这里只以一次运行结果说明,且在4个特征中,以第一个和最后一个特征进行分类图示。

 

示例:

鸢尾花数据分析及可视化R语言 鸢尾花数据分析论文_鸢尾花数据分析及可视化R语言_02

分类结果图:

鸢尾花数据分析及可视化R语言 鸢尾花数据分析论文_决策树_03