本站原创文章,转载请说明来自《老饼讲解-机器学习》www.bbbdata.com
sklearn中,训练完决策树后,将决策树可视化,更容易帮助我们了解模型的训练结果。
本文讲解如何通过graphviz的方式,将决策树可视化
本节讲解如何使用graphviz可视化决策树,并提供相关Demo代码,以方便使用时借鉴
决策树可视化与graphviz的安装
python中可以使用graphviz来将决策树可视化
使用graphviz将决策树可视化需要先安装graphviz包
通过pip安装graphviz包的命令为: pip install graphviz
graphviz可视化决策树-参考Demo代码
在安装了graphviz后,就可以可视化决策树了,
使用graphviz可视化决策可以参考下面的Demo代码:
from sklearn.datasets import load_iris
from sklearn import tree
import graphviz
#----------------数据准备----------------------------
iris = load_iris() # 加载数据
#---------------模型训练----------------------------------
clf = tree.DecisionTreeClassifier() # sk-learn的决策树模型
clf = clf.fit(iris.data, iris.target) # 用数据训练树模型构建()
r = tree.export_text(clf, feature_names=iris['feature_names'])
dot_data = tree.export_graphviz(clf, out_file=None,
feature_names=iris.feature_names,
class_names=iris.target_names,
filled=True, rounded=True,
special_characters=True)
graph = graphviz.Source(dot_data)
graph #显示图形。(如果没显示,则需要独立运行这一句)
#graph.render("iris") #将图形保存为iris.pdf文件。
#graph.view() # 直接打开pdf文件展示
✍️备注
(1)如果报错 failed to execute ['dot', ...... systems' PATH,
请查看《运行graphviz报错解决方案》
(2)如果没显示以下图形,则独立运行最后一句 graph
(3)保存成PDF文件,则独立运行graph.render("iris")
本节讲解如何理解graphviz画出的决策树
graphviz可视化决策树-结果解说
运行上述代码,可得到如下决策树图:
通过图形化,我们可以清晰的看到:
初始根节点有150个样本,每个类别各有50个样本
gini系数为0.667,节点属于setosa类别
根节点以petal_length<=2.45划为左节点,
共50个样本,全部属于第1类,该节点极纯,gini系数为0
根据这50个样本所属类别,该节点被判为setosa
根节点petal_length>2.45划为右节点,
共100个样本,2类和3类各50个,该节点gini系数为0.5
(即随便抽两个样本,属于不同类别的可能性为0.5)
根据这100个样本,该节点被判为versicolor类
.......
画出图后,可以清晰看到整个树的构建过程和树最后的结构,便于我们分析模型和模型优化
End