决策树可视化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

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值