【问题标题】:PYTHON Decision Tree VisualizationPYTHON 决策树可视化
【发布时间】: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。
  • 请发布您的代码,尤其是引发此错误的部分

标签: python scikit-learn decision-tree


【解决方案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)

【讨论】:

    猜你喜欢
    • 2019-05-14
    • 2012-07-03
    • 2020-08-17
    • 2019-04-27
    • 2021-07-22
    • 2022-01-11
    • 2014-08-28
    • 2019-04-09
    相关资源
    最近更新 更多