首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将决策树从文本转换为2可视化

将决策树从文本转换为2可视化
EN

Stack Overflow用户
提问于 2018-09-19 03:12:48
回答 1查看 312关注 0票数 0

我有一个‘文本’格式的决策树输出,这是非常难以阅读和解释。在树/节点/叶之后有大量的管道和缩进。我想知道有没有工具可以让我像下面这样输入决策树,然后得到像Weka,Python,...etc这样的树形图?

由于我的决策树非常大,下面是示例/部分决策,以给出我的文本决策树的概念。非常感谢!

代码语言:javascript
复制
"bio" <= 0.5:
|    "ml" <= 0.5:
|    |    "algorithm" <= 0.5:
|    |    |    "bioscience" <= 0.5:
|    |    |    |    "microbial" <= 0.5:
|    |    |    |    |    "assembly" <= 0.5:
|    |    |    |    |    |    "nano-tech" <= 0.5:
|    |    |    |    |    |    |    "smith" <= 0.5:
|    |    |    |    |    |    |    |    "neurons" <= 0.5:
|    |    |    |    |    |    |    |    |    "process" <= 1.5:
|    |    |    |    |    |    |    |    |    |    "program" <= 1.5:
|    |    |    |    |    |    |    |    |    |    |    "mammal" <= 1.0:
|    |    |    |    |    |    |    |    |    |    |    |    "lab" <= 0.5:
|    |    |    |    |    |    |    |    |    |    |    |    |    "human-machine" <= 1.5:
|    |    |    |    |    |    |    |    |    |    |    |    |    |    "tech" <= 0.5:
|    |    |    |    |    |    |    |    |    |    |    |    |    |    |    "smith" <= 0.5:
EN

回答 1

Stack Overflow用户

发布于 2018-09-21 18:10:17

我不知道有什么工具可以解释这种格式,所以我认为您必须编写一些代码,要么解释文本格式,要么使用MALLET的Java API中的DecisionTree类检索树结构。

在Python中解释文本应该不会太难:例如,如果

代码语言:javascript
复制
line = '|    |    |    |    |    "assembly" <= 0.5:'

然后,您可以使用以下命令获取缩进级别、预测器名称和拆分点

代码语言:javascript
复制
parts = line.split('"')
indent = parts[0].count('|    ')
predictor = parts[1]
splitpoint = float(parts[2][-1-parts[2].rfind(' '):-1])

要创建图形输出,我将使用GraphViz。有用于它的Python APIs,但是用它的基于文本的dot格式构建一个文件并使用dot命令从它创建图形已经足够简单了。例如,简单树的文件可能如下所示

代码语言:javascript
复制
digraph MyTree {
Node_1 [label="Predictor1"]
Node_1 -> Node_2 [label="< 0.335"]
Node_1 -> Node_3 [label=">= 0.335"]
Node_2 [label="Predictor2"]
Node_2 -> Node_4 [label="< 1.42"]
Node_2 -> Node_5 [label=">= 1.42"]
Node_3 [label="Class1
(p=0.897, n=26)", shape=box,style=filled,color=lightgray]
Node_4 [label="Class2
(p=0.993, n=17)", shape=box,style=filled,color=lightgray]
Node_5 [label="Class3
(p=0.762, n=33)", shape=box,style=filled,color=lightgray]
}

以及来自dot的结果输出

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52393195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档