决策树之鸢尾花卉实例解析
1、介绍
以sklearn数据集中的鸢尾花卉Iris数据集为例,解析决策树。
鸢尾花卉Iris数据集中有150个样本(示例),4个特征(属性),1个标签(类别变量)。以此150个样本为训练样本得到相应的决策树。
首先,明确一下数据集中的内容。
通过以下代码可以查看:
解说:
①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个特征中,以第一个和最后一个特征进行分类图示。
示例:
分类结果图: