sklearn与决策树-应用
模型提取
sklearn决策树结果可视化
作者 : 老饼 日期 : 2022-06-26 09:48:47 更新 : 2022-08-03 20:45:57
本站原创文章,转载请说明来自《老饼讲解-机器学习》ml.bbbdata.com


sklearn中,训练完决策树后,将决策树可视化,

更容易帮助我们了解模型的训练结果。

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


  01. graphviz安装  


决策树图形化 需要先通过pip安装graphviz包: pip install graphviz




  02. 参考Demo代码  


在安装了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', '-Tsvg'], make sure the Graphviz executables are on your systems' PATH,请查看《运行graphviz报错解决方案》
 
(2)如果没显示以下图形,则独立运行最后一句 graph
(3)保存成PDF文件,则独立运行graph.render("iris")



   03. 运行结果  


运行后得到如下决策树图



通过图形化,我们可以清晰的看到: 
初始根节点有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 







联系老饼