使用pydotplus&GraphViz绘制决策树图形

###安装GraphViz之后,需要设置环境变量,还需配套安装pydotplus
https://blog.csdn.net/chai_zheng/article/details/78226556


###葡萄酒公开数据集下载地址:http://archive.ics.uci.edu/ml/datasets/Wine

###随机森林可视化
https://blog.csdn.net/linhai1028/article/details/79827331


import time
import pydotplus
import numpy as np
from sklearn import tree
from sklearn.externals.six import StringIO
from sklearn.model_selection import train_test_split

print('Step 1.Loading data...')
data = np.loadtxt("D:/data/Wine.txt", delimiter=',')
x = data[:, 1:14]
y = data[:, 0].reshape(178,1)
X_train, X_test, Y_train, Y_test = train_test_split(x, y, test_size=0.4)
print('---Loading and splitting completed.')


print('Step 2.Training...')
startTime = time.time()
clf = tree.DecisionTreeClassifier()
clf = clf.fit(X_train,Y_train)
print('---Training Completed.Took %f s.'%(time.time()-startTime))


print('Step 3.Testing...')
Y_predict = clf.predict(X_test)
matchCount = 0
for i in range(len(Y_predict)):
    if Y_predict[i] == Y_test[i]:
        matchCount += 1
accuracy = float(matchCount/len(Y_predict))
print('---Testing completed.Accuracy: %.3f%%'%(accuracy*100))


feature_name = ['Alcohol','Malic Acid','Ash','Alcalinity of Ash','Magnesium','Total Phenols',
                'Flavanoids','Nonflavanoid Phenols','Proantocyanins','Color Intensity','Hue',
                'OD280/OD315 of Diluted Wines','Proline']
target_name = ['Class1','Class2','Class3']


dot_data = StringIO()

tree.export_graphviz(clf,out_file = dot_data,feature_names=feature_name,
                     class_names=target_name,filled=True,rounded=True,
                     special_characters=True)


graph = pydotplus.graph_from_dot_data(dot_data.getvalue())

graph.write_pdf("WineTree.pdf")
print('Visible tree plot saved as pdf.')


转载于:https://my.oschina.net/kyo4321/blog/3009740

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Python中,可以使用Graphviz库来绘制决策树Graphviz是一个开源的图形可视化工具,可以用来绘制各种类型的图形,包括决策树使用Graphviz绘制决策树需要先将决策树转换为Graphviz所支持的DOT语言格式,然后使用Graphviz库将DOT语言格式转换为图形。具体步骤如下: 1. 安装Graphviz库和pydotplus库(用于将DOT语言格式转换为图形)。 2. 将决策树转换为DOT语言格式。可以使用sklearn库中的export_graphviz函数来实现。例如: ``` from sklearn.tree import export_graphviz import pydotplus dot_data = export_graphviz(decision_tree, out_file=None, feature_names=feature_names, class_names=target_names, filled=True, rounded=True, special_characters=True) graph = pydotplus.graph_from_dot_data(dot_data) ``` 其中,decision_tree是已经训练好的决策树模型,feature_names是特征名称列表,target_names是目标变量名称列表。 3. 将DOT语言格式转换为图形。可以使用pydotplus库中的graph_from_dot_data函数来实现。例如: ``` graph = pydotplus.graph_from_dot_data(dot_data) graph.write_png('decision_tree.png') ``` 其中,'decision_tree.png'是输出的图形文件名。 4. 运行代码,即可生成决策树图形。 ### 回答2: Python中的Graphviz是一个绘制图形和网络图的工具包。它是基于DOT语言(一种图形描述语言)进行绘制的。它可以用于绘制各种类型的图表,包括决策树。 在Python使用Graphviz绘制决策树通常需要两个步骤。第一步是导入必要的库,包括Graphviz和sklearn库中的DecisionTreeClassifier。第二步是使用DecisionTreeClassifier生成决策树,并使用Graphviz决策树可视化。 以下是一些示例代码: ```python from sklearn import datasets from sklearn.tree import DecisionTreeClassifier from sklearn.tree import export_graphviz import graphviz # 导入鸢尾花数据集 iris = datasets.load_iris() X = iris.data[:, 2:] y = iris.target # 训练决策树模型 tree_clf = DecisionTreeClassifier(max_depth=2) tree_clf.fit(X, y) # 导出决策树 export_graphviz( tree_clf, out_file="iris_tree.dot", feature_names=iris.feature_names[2:], class_names=iris.target_names, rounded=True, filled=True ) # 使用Graphviz绘制决策树 with open("iris_tree.dot") as f: dot_graph = f.read() graphviz.Source(dot_graph) ``` 这段代码基于鸢尾花数据集训练了一个决策树模型,并使用Graphviz将其可视化。其中,export_graphviz函数将决策树导出到一个.dot文件中。这个.dot文件可以用Graphviz进行可视化。最后,使用graphviz.Source函数将决策树渲染为图形graphviz包中的其他函数也可以用于调整决策树的外观和布局,例如设置节点的大小、颜色和形状、设置连接线的颜色和样式等等。 总之,使用Graphviz绘制决策树是非常简单和有用的。无论是初学者还是专业人士都可以使用Python中的Graphviz绘制漂亮并易于理解的决策树图表。 ### 回答3: Graphviz是一个开放源代码的跨平台图形语言,它提供了一种描述图形的语言,通过这个语言可以在各种系统下生成类似流程图、树状图、组织结构图等多种图形Python中,我们可以使用graphviz来画决策树。先安装graphviz的库,可以使用pip命令进行安装。安装完成后,我们需要在Python中导入graphviz库。 进行决策树绘图的主要步骤如下: 1. 使用sklearn库中的tree模块建立一个决策树,例如: ``` from sklearn import tree clf = tree.DecisionTreeClassifier() ``` 2. 使用fit函数训练我们的决策树,例如: ``` clf.fit(X_train, y_train) ``` 3. 将决策树生成指定格式的文本,例如: ``` from sklearn.tree import export_graphviz dot_data = export_graphviz(clf, out_file=None) ``` 4. 将文本转化为图形格式,例如: ``` import graphviz graph = graphviz.Source(dot_data) ``` 5. 输出绘制决策树图像,例如: ``` graph.render("tree") ``` 这个时候,我们就可以在当前目录中看到一个名为“tree.pdf”的文档,里面就是通过graphviz绘制出来的决策树图像。 总之,Graphviz是一个强大的绘制决策树的工具,借助Python,我们可以轻松地使用Graphviz绘制和显示决策树,有效地理解决策树模型的决策过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值