机器学习-专题详述

【讲解】sklearn决策树结果可视化

作者 : 老饼 发表日期 : 2022-06-26 09:48:47 更新日期 : 2024-06-30 20:00:05
本站原创文章,转载请说明来自《老饼讲解-机器学习》www.bbbdata.com



sklearn中,训练完决策树后,将决策树可视化,更容易帮助我们了解模型的训练结果。

本文讲解如何通过graphviz的方式,将决策树可视化




  01. 如何用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")               





   02. graphviz可视化决策树-结果解说  



本节讲解如何理解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 



联系老饼