PYTHON 决策树可视化
Posted
技术标签:
【中文标题】PYTHON 决策树可视化【英文标题】:PYTHON Decision Tree Visualization 【发布时间】:2017-08-10 08:29:04 【问题描述】:[![在此处输入图像描述][1]][1]我想可视化已应用于 pdf 或 png 文件中的数据的树决策分类器。我尝试通过以下代码使用 graphviz 进行可视化:
X_train, X_test, y_train, y_test = \
train_test_split(X, y, test_size=0.30, random_state=1)
clf =tree.DecisionTreeClassifier(max_depth=43)
clf = clf.fit(X_train, y_train)
from sklearn.externals.six import StringIO
import pydot
dot_data = StringIO()
tree.export_graphviz(clf, out_file=dot_data)
graph = pydot.graph_from_dot_data(dot_data.getvalue())
graph[0].write_pdf("tree.pdf")
但是程序无法完成。一旦我收到内存不足的错误,第二次我收到错误“点停止工作”。由于这个问题,我想通过知道左孩子在哪里,右孩子或左孩子在哪里来了解这棵树?感谢您的任何回复和帮助
【问题讨论】:
你有多少条边? @CodeIsLife 我对决策树相当陌生。你能告诉我你所说的“边缘”是什么意思吗?我认为错误可能是因为我拥有的样本数量为 128000。每个样本有 2 个特征 你的树有多深:层数、节点数... @CodeIsLife max_depth 为 43。 请发布您的代码,尤其是引发此错误的部分 【参考方案1】:如果您遇到如下错误:
Program terminated with status: -11. stderr follows: dot: graph is too large for cairo-renderer bitmaps.
然后要了解树,您可以尝试将其以树文本格式显示在屏幕上,如下所示:
from sklearn.tree import export_text
r = export_text(clf, feature_names=df_X_train.columns)
print(r)
【讨论】:
以上是关于PYTHON 决策树可视化的主要内容,如果未能解决你的问题,请参考以下文章