繁体   English   中英

Sklearn plot_tree plot 太小了

[英]Sklearn plot_tree plot is too small

我有这个简单的代码:

clf = tree.DecisionTreeClassifier()
clf = clf.fit(X, y)

tree.plot_tree(clf.fit(X, y))
plt.show()

我得到的结果是这张图: 在此处输入图像描述

如何使此图表清晰易读? 我正在使用 PyCharm Professional 2019.3 作为我的 IDE。

我认为您正在寻找的设置是fontsize 你必须用max_depthfigsize来平衡它以获得可读的图。 这是一个例子

from sklearn import tree
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt

# load data
X, y = load_iris(return_X_y=True)

# create and train model
clf = tree.DecisionTreeClassifier(max_depth=4)  # set hyperparameter
clf.fit(X, y)

# plot tree
plt.figure(figsize=(12,12))  # set plot size (denoted in inches)
tree.plot_tree(clf, fontsize=10)
plt.show()

在此处输入图片说明

如果您想捕获整棵树的结构,我想用小字体和高 dpi 保存绘图是解决方案。 然后您可以打开图片并缩放到特定节点以检查它们。

# create and train model
clf = tree.DecisionTreeClassifier()
clf.fit(X, y)

# save plot
plt.figure(figsize=(12,12))
tree.plot_tree(clf, fontsize=6)
plt.savefig('tree_high_dpi', dpi=100)

这是它在较大树上的外观示例。

在此处输入图片说明

在此处输入图片说明

事先设置图像的大小怎么样:

clf = tree.DecisionTreeClassifier()
clf = clf.fit(X, y)

fig, ax = plt.subplots(figsize=(10, 10))  # whatever size you want
tree.plot_tree(clf.fit(X, y), ax=ax)
plt.show()

尝试这个:

plt.figure(figsize=(12,12))
tree.plot_tree(clf, fontsize=10)
plt.show()

如果您预先设置大小问题就解决了:

from sklearn.tree import plot_tree, export_text
fig = plt.figure(figsize=(25,20))
_ = plot_tree(clf)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM