欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

机器学习:决策树(四) —— sklearn决策树的使用及其可视化

程序员文章站 2024-02-05 11:23:16
...

一、简介

    基于sklearn的决策树使用很简单,使用DecisionTreeClassifier类即可

    进一步,我们希望将该树可视化出来,这时需要用到sklearn中tree.export_graphviz函数和graphviz模块.

    Graphviz是一个开源的图形可视化软件。图可视化是将结构信息表示为抽象图和网络图的一种方法。它在网络、生物信息学、软件工程、数据库和网页设计、机器学习以及其他技术领域的可视化接口方面有重要的应用。

    python 中有相对应的graphviz模块。但是我们不仅需要在python中成功安装graphviz,还要在系统中安装graphviz,并在系统路径里添加配置(控制面板——》系统——》高级系统设置——》系统属性——》高级——》环境变量——》系统变量——》Path中添加:

    C:\Program Files (x86)\Graphviz2.38\bin;

    如果是Ubuntu系统,可使用命令 sudo apt-get install graphviz 安装;

    如果是Windows系统,则去官网下载安装包,目前稳定版是graphviz-2.38.msi或graphviz-2.38.zip;

    如果是Mac系统,可以通过Homebrew安装。
 

二、代码实现

#%%
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report
from sklearn.tree import DecisionTreeClassifier, export_graphviz
import graphviz
#%%
data = load_iris() 
features = data['feature_names']
x = data['data']
y = data['target']
data_train, data_val, label_train, label_val = train_test_split(x,y,test_size=0.2)

mytree= DecisionTreeClassifier()
mytree.fit(data_train, label_train)

label_pred = mytree.predict(data_val)

print(classification_report(label_val, label_pred))
dot_data = export_graphviz(mytree, out_file=None)
graph = graphviz.Source(dot_data)
graph.render("iris")     //将图像存到iris.pdf中

 输出结果为:

机器学习:决策树(四) —— sklearn决策树的使用及其可视化

三、参考资料

【1】https://blog.csdn.net/weixin_39059031/article/details/81431152

【2】https://blog.csdn.net/lizzy05/article/details/88529030