DecisionTree决策树分类可视化

关于鸢尾花的数据集的介绍,见维基百科 https://en.wikipedia.org/wiki/Iris_flower_data_set
该数据集由来自三种鸢尾(Iris setosa,Iris virginica和Iris versicolor)中的每一种的50个样品组成。从每个样品测量四个特征:萼片和花瓣的长度和宽度,以厘米为单位。
数据集包含一组150个记录,属于5个属性 - 花瓣长度,花瓣宽度,萼片长度,萼片宽度和类别。
from sklearn.datasets import load_iris #导入鸢尾花的数据集,
iris=load_iris()

# 数据集介绍
# 见维基百科https://en.wikipedia.org/wiki/Iris_flower_data_set
# print(iris.feature_names) #['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)'] 花瓣长度/花瓣宽度/萼片长度/萼片宽度
# print(iris.target_names)#['setosa' 'versicolor' 'virginica']三种鸢尾花
# print(iris.data[0]) #[5.1 3.5 1.4 0.2] 第一条数据
# print(iris.target[0:51])#[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1] 可以看出每个品种的花50个样本
# print(len(iris.target)) #150
# for i in range(len(iris.target)):
#     print('Example样本%d,label标签%s, features特征%s'%(i,iris.target[i],iris.data[i]))

# example used to 'test' the classifier's accuracy
test_idx=[0,50,100]
import numpy as np
# 训练数据
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]

from sklearn import tree
clf=tree.DecisionTreeClassifier()
clf=clf.fit(train_data,train_target)

print(test_target)#[0 1 2]
print(clf.predict(test_data)) #[0 1 2]

# 制作简单易读的pdf
from sklearn.externals.six import StringIO
import pydotplus   #pydot的升级包
dot_data=StringIO()
tree.export_graphviz(clf,out_file=dot_data,
                     feature_names=iris.feature_names,
                     class_names=iris.target_names,
                     filled=True,rounded=True,
                     impurity=False)
graph=pydotplus.graph_from_dot_data(dot_data.getvalue())

graph.write_pdf('iris.pdf') #关于报错:https://www.jianshu.com/p/d221834e00c4

print(test_data[0],test_target[0])  #[5.1 3.5 1.4 0.2] 0
print(iris.feature_names,iris.target_names) #['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)'] ['setosa' 'versicolor' 'virginica']

 注意1:需要安装Graphviz软件,而不是通过pip install Graphviz安装包;

 安装Graphviz软件步骤:

1.下载Windows软件包 2.38稳定释放  graphviz-2.38.zip

  https://graphviz.gitlab.io/_pages/Download/Download_windows.html

2.将压缩包放入E:\AI graphviz\ 中解压,解压后多了一个release文件夹;

3.将release中的bin文件夹的路径添加到环境变量中:

 注意2.安装 pydot的升级包 pydotplus,通过pip install  pydotplus

注意3.Decision Tree分类数据需要从上往下看,每个节点代表一个特征,并向其提供一个‘是不是的问题’。

        使用决策树总结:决策树提出的每一个问题,必须针对某一个特征,就意味着你选的特征越可靠,决策树准确率越高。

猜你喜欢

转载自blog.csdn.net/jn10010537/article/details/82953522
今日推荐