我正在尝试从JAVA程序打印树。这是我得到的结果。我知道它采用“点”格式,我可以使用Graphviz将其转换为图形格式,但即使我使用Graphviz,我仍然可以使N28c97a5
这些奇怪的字符仍然是我图形的一部分。如何将其转换为ASCII?
我想得到这样的东西
attribute_2 < 1759.5
| attribute_2 < 1638.5
| | attribute_3 < 1656.5
| | | attribute_0 < 2027.5 : A (6/0)
| | | attribute_0 >= 2027.5 : B (3/0)
| | attribute_3 >= 1656.5 : A (28/0)
| attribute_2 >= 1638.5
但我实际上得到了这个
digraph Tree {
edge [style=bold]
N28c97a5 [label="1: A"]
N28c97a5->N6659c656 [label="attribute_2 < 1978"]
N28c97a5->N6d5380c2 [label="attribute_2 >= 1978"]
N6d5380c2 [label="2: A"]
N6d5380c2->N45ff54e6 [label="attribute_3 < 1682"]
N45ff54e6 [label="3: B"]
N45ff54e6->N2328c243 [label="attribute_3 < 1595"]
N45ff54e6->Nbebdb06 [label="attribute_3 >= 1595"]
Nbebdb06 [label="4: B"]
Nbebdb06->N7a4f0f29 [label="attribute_3 < 1676.5"]
N7a4f0f29 [label="5: B"]
N7a4f0f29->N45283ce2 [label="attribute_0 < 2010.5"]
N45283ce2 [label="6: B"]
N45283ce2->N2077d4de [label="attribute_3 < 1622.5"]
N2077d4de [label="7: B"]
N2077d4de->N7591083d [label="attribute_1 < 2112.5"]
N2077d4de->N77a567e1 [label="attribute_1 >= 2112.5"]
N45283ce2->N736e9adb [label="attribute_3 >= 1622.5"]
N7a4f0f29->N6d21714c [label="attribute_0 >= 2010.5"]
Nbebdb06->N108c4c35 [label="attribute_3 >= 1676.5"]
N6d5380c2->N4ccabbaa [label="attribute_3 >= 1682"]
}
答案 0 :(得分:0)
toGraph
方法以Graphviz格式生成输出,适合使用Graphviz的dot
程序生成树的图像。
为RandomTree
分类器生成您在Weka GUI输出窗口中看到的人类可读输出的方法是toString
。对于某些分类器类型,例如J48,还有一个toSummaryString
方法,可能就是你想要的。
您可以在Javadoc。
中查看Weka类的方法和属性