决策树可视化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
接下来是在当前目录下的命令行中执行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