问题:决策树tree.export_graphviz输出树中文显示为框框,无法正常解析

from sklearn import tree
from sklearn.externals.six import StringIO
dot_data = StringIO()
tree.export_graphviz(model_clf, out_file=dot_data,  # doctest: +SKIP
                                         feature_names=feature_names,  # doctest: +SKIP
                                         class_names=target_names,  # doctest: +SKIP
                                         filled=True, rounded=True,  # doctest: +SKIP
                                         special_characters=True)

graph = graphviz.Source(dot_data.getvalue())  # doctest: +SKIP
graph.render(prj_path+"dx_fig01")
以上代码,输出的图中含中文字符,在本地运行能正常显示,服务器上为框框,显示不出来,解决策略:
1)字库问题,参考了[云服务器Ubuntu系统下中文乱码问题解决方案](https://blog.csdn.net/zhoucheng05_13/article/details/53375161)这个网址,(最后一步重启服务器未执行)还是不能解决问题,故考虑到是字库的问题
2)sklearn里面tree这个包里面不含有解析中文字符的包,将本地系统所有字体全都打包传到服务器系统专门存字体的文件中,linux系统都在/usr/share/fonts这个文件夹下,注意ubuntu14.04与ubuntu16.04的字体有可能存在兼容性问题。
扩展:学习决策树图输出的理解,以及dot作图,编译原理等!!
tree.export_graphviz是scikit-learn库中的一个函数,用于将决策树模型导出为Graphviz格式的文件。Graphviz一个开源的形可视化工具,可以将形描述语言转换为可视化形。 使用tree.export_graphviz函数时,需要提供以下参数: - decision_tree决策树模型对象,即训练好的决策树模型。 - out_file:输出文件的路径和名称,可以是字符串或文件对象。例如:"tree.dot"。 - feature_names:特征名称列表,可选参数。用于指定特征的名称,可以提供便于理解的特征标签。默认为None,即使用自动生成的特征名称。 - class_names:类别名称列表,可选参数。用于指定类别的名称,可以提供便于理解的类别标签。默认为None,即使用自动生成的类别名称。 - filled:是否给节点上色,可选参数。默认为False,即不给节点上色。 - rounded:是否将节点框架设置为圆角,可选参数。默认为False,即节点框架为直角。 - special_characters:是否允许使用特殊字符,可选参数。默认为True。 示例代码如下所示: ```python from sklearn import tree tree.export_graphviz(decision_tree, out_file='tree.dot', feature_names=['feature1', 'feature2'], class_names=['class1', 'class2'], filled=True, rounded=True, special_characters=True) ``` 执行该代码后,会在当前目录下生成一个名为"tree.dot"的文件,该文件可以通过Graphviz工具转换为可视化的决策树形。 注意:在使用tree.export_graphviz函数之前,需要先安装Graphviz工具,并将其添加到系统路径中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值