首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >dtreeviz框架的可视化问题

dtreeviz框架的可视化问题
EN

Stack Overflow用户
提问于 2022-10-16 20:49:50
回答 1查看 37关注 0票数 0

这是我的代码运行在py魅力,它应该显示很好的可视化图表,但没有显示结果。

代码语言:javascript
复制
import matplotlib.pyplot as plt
import pydotplus
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_iris
from sklearn import tree
from io import StringIO
from ipywidgets import Image
from dtreeviz.trees import *
from sklearn.tree import DecisionTreeClassifier
from sklearn.tree import plot_tree
iris = load_iris()
X = iris.data
y = iris.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# fit the classifier
clf = DecisionTreeClassifier(max_depth=3, random_state=42)
clf.fit(X_train, y_train)
viz = dtreeviz(clf,
               x_data=X_train,
               y_data=y_train,
               target_name='class',
               feature_names=iris.feature_names,
               class_names=list(iris.target_names),
               title="Decision Tree - Iris data set")
plt.show()

例如,我正在使用这个链接作为参考-- visualization.ipynb,即使我在google中运行了这段代码,google中也没有显示结果,那么有什么问题呢?此代码的输出就是:

代码语言:javascript
复制
Process finished with exit code 0
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-16 21:14:12

您的代码正在混合示例代码的某些部分(包括一些不需要的部分)。

如果运行以下命令:

代码语言:javascript
复制
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from dtreeviz.trees import dtreeviz
from sklearn.tree import DecisionTreeClassifier

iris = load_iris()
x = iris.data
y = iris.target
x_train, _, y_train, _ = train_test_split(x, y, test_size=0.2, random_state=42)

clf = DecisionTreeClassifier(max_depth=3, random_state=42)
clf.fit(x_train, y_train)

viz = dtreeviz(clf,
               x_data=x_train,
               y_data=y_train,
               target_name='class',
               feature_names=iris.feature_names,
               class_names=list(iris.target_names),
               title="Decision Tree - Iris data set")
viz.view()

如果您安装了所有引用的包,并且将GraphViz和GraphViz配置为在路径上(在启动编辑器/IDE之前),那么调用viz.view()将生成并启动一个.svg文件。

如果您的应用程序配置为查看.svg (如web浏览器或InkScape等)它应该能显示出你想要的结果。

(请注意,我还在Python3.10.8上运行了这段PyCharm代码--任何3.10都可以运行--使用所有软件包的最新版本和新安装的GraphViz。)

您可以通过在GraphViz中打开终端并运行:dot -V来检查是否可以运行dot -V。你应该看到这样的东西:

代码语言:javascript
复制
dot - graphviz version 6.0.2 (20221011.1828)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74090617

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档