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输出树中文显示为框框,无法正常解析
最新推荐文章于 2024-12-31 11:43:19 发布