如何调整 sklearn 中 plot_tree 图的大小以使其可读?

Posted

技术标签:

【中文标题】如何调整 sklearn 中 plot_tree 图的大小以使其可读?【英文标题】:How can I adjust the size of the plot_tree graph in sklearn to make it readable? 【发布时间】:2020-03-29 04:13:19 【问题描述】:

我正在尝试用matplotlibsklearn 绘制一个plot_tree 对象,但我的树状图看起来不太好。我的树状图看起来被压扁了:

下面是我的代码:

from sklearn import tree
from sklearn.model_selection import cross_val_score
from sklearn.metrics import accuracy_score
import matplotlib.pyplot as plt

# create tree object 
model_gini_class = tree.DecisionTreeClassifier(criterion='gini')

# train the model using the training sets and check score
model_gini_class.fit(X_train, y_train)
model_gini_class.score(X_train, y_train)

# predict output
predicted_gini_class = model_gini_class.predict(X_test)

plt.figure()
tree.plot_tree(model_gini_class, filled=True)
plt.title("Decision trees on the Shakespear dataset (Gini)")
plt.show() # the tree looks squished?

所以我的问题是:

有人能告诉我如何调整sklearn plot_tree 对象的大小,使其看起来不会被压扁吗?

谢谢,

【问题讨论】:

【参考方案1】:

这可能会有所帮助

plt.figure(figsize=(10,10))

【讨论】:

【参考方案2】:

你可以做两件事:

方法一


# Decision tree
classifier = DecisionTreeClassifier()
classifier.fit(X_train, y_train)


_, ax = plt.subplots(figsize=(30,30)) # Resize figure
plot_tree(classifier, filled=True, ax=ax)
plt.show()

方法二


# Decision tree
classifier = DecisionTreeClassifier()
classifier.fit(X_train, y_train)

plt.figure(figsize=(30, 30) # Resize figure
plot_tree(classifier, filled=True)
plt.show()

随心所欲地使用

【讨论】:

【参考方案3】:

这可能会有所帮助

from matplotlib import pyplot as plt
fig, axes = plt.subplots(nrows = 1,ncols = 1,figsize = (5,5), dpi=300)
tree.plot_tree(model_gini_class, filled=True)

【讨论】:

以上是关于如何调整 sklearn 中 plot_tree 图的大小以使其可读?的主要内容,如果未能解决你的问题,请参考以下文章

sklearn.plot_tree 如何可视化分类任务的 class_labels?

sklearn plot_tree 图太小

sklearn决策树plot_tree中节点中的“值”是啥意思

Jupyter中AttributeError: module ‘sklearn.tree‘ has no attribute ‘plot_tree‘的解决方法

如何通过tree.plot_tree设置树视图中的列名?

从 sklearn 随机森林回归器可视化决策树