如何解决决策树可视化的中文乱码问题?(部分解决)

在使用pydotplus和Graphviz进行决策树可视化时遇到中文乱码问题,传统解决方案针对旧版GraphViz无效。通过在原有可视化代码后添加设置fontname的代码,部分解决了乱码问题,但会导致异常。最终实现的解决方案是人为修改每个节点的fontname属性值为‘SimHei’,得到部分正确的可视化结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述:在使用pydotplus和Graphviz对决策树结构进行可视化的时候,由于训练数据的特征名称使用的是中文,所以在最终的可视化结果中,中文被显示成了乱码,具体如下图:
在这里插入图片描述

从网上找到的一些资料说,需要对GraphViz中的font配置文件做修改,但这些资料中所说的解决方案都是针对GraphViz 2.39版本做的,对于Graphviz2.49(目前的最新版本)无效(因为里面的配置文件都变了,也有可能是我安装的Graphviz版本里面的包不全)。我的解决方案如下:

dot_data=tree.export_graphviz(dtc,
                              feature_names=feats,
                              class_names=['N','Y'],
                              filled=True,special_characters=True,
                              rounded=True)
graph=pydotplus.graph_from_dot_data(dot_data)
#在原有的可视化代码后面添加如下代码,人为修改每个节点的fontname属性值
for node in graph.get_nodes(): 
    node.set_fontname(lambda x:'SimHei')
Image(graph.create_png())

最后的可视化结果为(因为这种做法会抛出一些异常,所以才说是”部分解决“):
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值