如何解决Jupyter中使用Graphviz显示Dot图时出现的AttributeError问题
解决决策树可视化的AttributeError问题
嘿,我来帮你搞定这个错误!你遇到的AttributeError是因为使用graphviz.Source的方式不对,咱们一步步来修正:
错误原因
你最后一行写的graphviz.Source.dot_graph是在尝试访问Source类的静态属性,但Source类根本没有这个属性。正确的做法是把读取到的dot格式字符串传给Source类,创建一个可视化实例,再用display显示这个实例。
修正后的代码
把可视化部分的代码替换成下面任意一种写法都可以:
写法1:读取文件后创建实例
with open("tree.dot") as f: dot_graph = f.read() # 把dot_graph传入Source创建实例,再显示 display(graphviz.Source(dot_graph))
写法2:直接从文件加载(更简洁)
# 跳过手动读取文件,直接从dot文件创建Source实例 display(graphviz.Source.from_file("tree.dot"))
写法3:跳过中间文件(最高效)
如果你不想在目录里留下tree.dot文件,可以直接让export_graphviz返回dot字符串,传给Source:
# 设置out_file=None,让函数直接返回dot格式数据 dot_data = export_graphviz( tree, out_file=None, class_names=["malignant", "benign"], feature_names=cancer.feature_names, impurity=False, filled=True ) display(graphviz.Source(dot_data))
验证效果
替换代码后,你应该能正常看到决策树的可视化图形,同时之前的准确率输出也会保留:
Accuracy on training set: 0.988
Accuracy on test set: 0.951
内容的提问来源于stack exchange,提问作者Mampenda
相关产品推荐
相关产品推荐

