我试图在我自己的程序中使用 WEKA 类显示不同类生成的决策树。具体来说,我使用了两个不同的:J48(C4.5 实现)和 RandomTree。一个具有函数 graph() ,另一个具有函数 toGraph() ,它们似乎对各自的类具有相同的功能。
由于它们都将 java.lang.String 显示为返回类型,因此我希望看到类似于您在使用他们的 Explorer 应用程序时看到的内容:
act = STRETCH
| size = SMALL
| | Color = YELLOW
| | | age = ADULT : T (1/0)
| | | age = CHILD : F (1/0)
| | Color = PURPLE
| | | age = ADULT : T (2/0)
| | | age = CHILD : F (1/0)
| size = LARGE
| | age = ADULT : T (4/0)
| | age = CHILD : F (2/0)
act = DIP : F (8/0)
相反,我得到这样的东西:
digraph Tree {
edge [style=bold]
N13aaa14a [label="1: T"]
N13aaa14a->N268b819f [label="act = STRETCH"]
N268b819f [label="2: T"shape=box]
N13aaa14a->N10eb017e [label="act = DIP"]
N10eb017e [label="3: F"]
N10eb017e->N34aeffdf [label="age = CHILD"]
N34aeffdf [label="4: F"shape=box]
N10eb017e->N4d20a47e [label="age = ADULT"]
N4d20a47e [label="5: T"shape=box]
}
这是 WEKA 库独有的东西还是某种标准 Java 格式?它看起来类似于我在另一个项目中看到的一些 JSON 内容,但我从来没有那么熟悉它。
有没有一种简单的方法可以编写一个函数以更易于阅读的格式显示它?