Как я могу отобразить графическое (текстовая графика ascii) представление дерева решений в WEKA, используя graph () или tograph () - PullRequest
4 голосов
/ 01 февраля 2011

Я пытаюсь отобразить дерево решений, сгенерированное различными классами, используя классы 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-материалов, которые я видел, работая над другим проектом, но я так и не познакомился с ним.

Есть ли простой способ написать функцию для отображения ее в более понятном для человека формате?

1 Ответ

2 голосов
/ 01 февраля 2011

Вывод, который вы получаете, находится в так называемом «точечном» формате, который предназначен для компиляции в Graphviz.Вы получите лучшие результаты, чем искусство ASCII, это точно.

Сохраните файл в out.dot и попробуйте следующую команду:

$ dot -Tpng -oout.png out.dot 

Затем посмотрите, что у вас в out.png

...