PyCharm 2022.3专业版中dtreeviz无法显示决策树求助
在PyCharm 2022.3专业版中使用dtreeviz无法显示决策树的问题
我在Windows 11系统的PyCharm 2022.3专业版中使用dtreeviz时遇到了问题。已经按相关建议操作,Graphviz已安装并配置到系统路径,代码能正常运行并生成tree_viz对象,但决策树始终无法显示。默认浏览器为Edge,附上代码寻求解决思路。
from sklearn.model_selection import train_test_split, GridSearchCV from sklearn.tree import DecisionTreeClassifier,plot_tree from sklearn.metrics import accuracy_score, classification_report, confusion_matrix import dtreeviz X = dfl_tree.drop('Result', axis=1) y = dfl_tree['Result'] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) dt_classifier = DecisionTreeClassifier(random_state=42) param_grid = { 'criterion': ['gini', 'entropy'], 'max_depth': [None, 3,4,5], 'min_samples_split': [2, 5, 10], 'min_samples_leaf': [1, 2, 5] } grid_search = GridSearchCV(dt_classifier, param_grid, cv=5) grid_search.fit(X_train.values, y_train.values) best_dt_classifier = grid_search.best_estimator_ y_pred = best_dt_classifier.predict(X_test) # 用dtreeviz输出决策树可视化 feature_names = X_train.columns.tolist() tree_viz = dtreeviz.model( best_dt_classifier, X_train.values, y_train.values, target_name='Result', feature_names = feature_names, class_names=['No further action','Positive result'], ) tree_viz.view()
解决思路
- 手动验证SVG生成:把
tree_viz.view()替换为tree_viz.save("tree.svg"),执行代码后找到生成的SVG文件,用Edge手动打开。如果能显示,说明问题出在dtreeviz调用浏览器的环节;如果不能,说明Graphviz生成SVG时存在异常。 - 确认Graphviz环境变量生效:重启PyCharm,在终端输入
dot -V,若返回Graphviz版本则路径配置正常;若报错,重新检查系统PATH是否添加了Graphviz的bin目录,添加后需重启电脑确保全局生效。 - 调整输入数据格式:尝试将dtreeviz.model的参数从
X_train.values、y_train.values改为直接传入X_train、y_train,避免numpy数组可能带来的兼容性问题。 - 更新依赖库:执行
pip install --upgrade dtreeviz scikit-learn,升级到最新版本,修复旧版本在Windows环境下的显示bug。 - 检查浏览器关联:右键任意SVG文件,选择“打开方式”,设置Edge为默认程序,确保dtreeviz调用浏览器时能正确关联打开SVG文件。
内容的提问来源于stack exchange,提问作者A Rob4
相关产品推荐
相关产品推荐

