由于某些限制,我不能使用 graphviz , webgraphviz.com
可视化决策树(工作网络与另一个世界是封闭的)。
问题:是否有一些替代实用程序或一些 Python 代码用于至少非常简单的可视化可能只是决策树的 ASCII 可视化(python/sklearn)?
我的意思是,我可以特别使用 sklearn:tree.export_graphviz()
它产生具有树结构的文本文件,从中可以读取一棵树,
但是用“眼睛”做这件事并不愉快......
聚苯乙烯
请注意
graph = pydotplus.graph_from_dot_data(dot_data.getvalue())
Image(graph.create_png())
将不起作用,因为 create_png 隐式使用 graphviz
最佳答案
这是一个既不使用 graphviz 也不使用在线转换器的答案。从 scikit-learn 21.0 版(大约 2019 年 5 月)开始,现在可以使用 scikit-learn 的 tree.plot_tree 使用 matplotlib 绘制决策树不依赖于graphviz。
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier
from sklearn import tree
X, y = load_iris(return_X_y=True)
# Make an instance of the Model
clf = DecisionTreeClassifier(max_depth = 5)
# Train the model on the data
clf.fit(X, y)
fn=['sepal length (cm)','sepal width (cm)','petal length (cm)','petal width (cm)']
cn=['setosa', 'versicolor', 'virginica']
# Setting dpi = 300 to make image clearer than default
fig, axes = plt.subplots(nrows = 1,ncols = 1,figsize = (4,4), dpi=300)
tree.plot_tree(clf,
feature_names = fn,
class_names=cn,
filled = True);
fig.savefig('imagename.png')
下图是保存的内容。
代码改编自此 post .
关于python - 不使用 graphviz/web 可视化决策树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52654280/