Bootstrap

决策树可视化graphviz

决策树可视化graphviz

这里以Windows为例,其他的类似
graphviz官网下载地址

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

安装

一直点下去就可以,记住自己的安装路径

环境变量配置

据说是系统变量和用户变量都需要配置,我这里没有验证就都配置了

在这里插入图片描述

在这里插入图片描述

验证是否成功

进去cmd中输入dot -version,显示如下内容就是成功了

在这里插入图片描述

python环境中安装

我用的pycharm,在Terminal中pip install graphviz即可


至此,graphviz就安装完成了!!!

我主要是用来可视化决策树!


这是我的部分代码,注意这个知识决策树训练我定义的函数,并不能直接执行!!

import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.tree import DecisionTreeRegressor
from sklearn.externals.six import StringIO
from sklearn import tree


def train_decision_tree(df: pd.DataFrame, target_column: str, feature_columns: list):
    scaler = StandardScaler()

    x = df[feature_columns]
    y = df[target_column]

    # x = scaler.fit_transform(x)

    classifier = DecisionTreeRegressor(max_depth=5)
    classifier.fit(x, y)
    classifier.predict(x)
    dot_data = StringIO()
    tree.export_graphviz(classifier, out_file=dot_data, feature_names=feature_columns, filled=True,
                         rounded=True, special_characters=True)

    return scaler, classifier

但是我决策树标签中的中文显示乱码了,闹心×100(这个图是网上找的,内容相关,我自己的图不放了)在这里插入图片描述

解决办法

网上找到了两种办法,一种是将图形保存为png,另一种方法是将图形保存为pdf!

这里我只试了前一种,所以也只介绍前一种!

在这里插入图片描述
这部分代码会在目录下生成一个tree.dot文件

按照网上的经验是将tree.dot中节点和边的fontname改为支持中文的,由于我这里只设计到节点,我只将节点的fontname改为了fangsong

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eNJlF4Yo-1597063564747)(img/image-20200810193202747.png)]

接下来是在当前目录下的命令行中执行dot -Tpng tree.dot -o test.png,但是好巧不巧,又报错了Error: dot: can’t open tree.dot

也不知道为啥,一通百度,但是不知道为啥莫名奇妙的好了,我啥也没改啊,以图为证!!!

在这里插入图片描述
当然解决问题还是重要的,这里附上其他大佬的经验以供参考!


参考文献

https://blog.csdn.net/qq_33642342/article/details/86160880

https://www.dazhuanlan.com/2019/12/12/5df142efb0cf9/

https://www.pinggu.com/post/details/5eef3ffb2a465535582e3b8a

https://www.cnblogs.com/wqbin/p/11589533.html

;