简体   繁体   中英

sklearn decision tree plot_tree nodes are overlapping

When I plot my sklearn decision tree using sklearn.tree.plot_tree() , the nodes are overlapping on the deeper levels and I cannot read what is in the nodes. It is not nice to present your results. It looks like this:

重叠节点,希望它们之间有更多空间

How can I achieve having more space between them, to avoid an overlap?

I already found this question, and I already increased the fontsize to 10 and figsize to (20,30), but it leads to the tree plotted as shown in the picture. I also increased dpi to 150. This is my code:

fig = plt.figure(figsize=(20,30))
artists = sklearn.tree.plot_tree(decision_tree=clf, feature_names=feature_names, class_names=class_names, filled=True, rounded=True, fontsize=10, max_depth=4)
fig.savefig(filepath, dpi=150)

Just increase figsize=(50,30), adjust dpi=300 and apply the code to save the image in png. This saved image should look better

fig = plt.figure(figsize=(50,30))
artists = sklearn.tree.plot_tree(decision_tree=clf, feature_names=feature_names, class_names=class_names, filled=True, rounded=True, fontsize=10, max_depth=4,dpi=300) #adjust the dpi to the parameter that fits best your output
plt.savefig('decision_tree.png')#save the tree image in png format
plt.show()

You need to control the size of rendering the image. Try changing the figsize like fig = plt.figure(figsize=(50,30)) . This worked for me.
You can find the original documentation in https://scikit-learn.org/stable/modules/generated/sklearn.tree.plot_tree.html .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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