Анализ дерева решений (из классификатора WEKA) для построения графика в R?

Я хотел бы построить результат модели ID3. Похоже, у него нет модуля сюжета по умолчанию ни в WEKA, ни в R.

Есть ли уже готовый код для этого? (или формат дерева ниже имеет стандартное имя, для которого я мог бы легко найти синтаксический анализатор?)

Вот некоторый базовый код:

# I'm getting a post from this: https://en.wikipedia.org/wiki/ID3_algorithm


## load RWeka
if(!require(RWeka)) install.packages("RWeka")
library(RWeka)
## look for a package providing id3
WPM("refresh-cache")
WPM("list-packages", "available") ## look for id3
## install package providing id3
WPM("install-package", "simpleEducationalLearningSchemes")
## load the package
WPM("load-package", "simpleEducationalLearningSchemes")
## make classifier
ID3 <- make_Weka_classifier("weka/classifiers/trees/Id3")
## test it out.

DF2 <- read.arff(system.file("arff", "contact-lenses.arff",
                             package = "RWeka"))
ID3(`contact-lenses` ~ ., data = DF2)

Вот результат:

Id3


tear-prod-rate = reduced: none
tear-prod-rate = normal
|  astigmatism = no
|  |  age = young: soft
|  |  age = pre-presbyopic: soft
|  |  age = presbyopic
|  |  |  spectacle-prescrip = myope: none
|  |  |  spectacle-prescrip = hypermetrope: soft
|  astigmatism = yes
|  |  spectacle-prescrip = myope: hard
|  |  spectacle-prescrip = hypermetrope
|  |  |  age = young: hard
|  |  |  age = pre-presbyopic: none
|  |  |  age = presbyopic: none

Структура дерева очень проста для понимания. Любые предложения о том, как разобрать этот? (может быть, похоже на ответ здесь?)

Спасибо.


person Tal Galili    schedule 03.09.2014    source источник
comment
Проблема, похоже, в том, что у других классификаторов есть метод graph, который вызывается через .jcall(obj$classifier, "S", "graph") , но он не работает для классификатора Id3. Id3 действительно отвечает на .jcall(x$classifier, "S", "toString"), который используется для печати текстовой версии дерева, которое вы видите. Похоже, он просто не делится этой информацией с R; насколько я могу судить, все это заперто в мире JAVA. (но я ни в коем случае не эксперт Weka).   -  person MrFlick    schedule 04.09.2014
comment
Привет @MrFlick - спасибо, я тоже это заметил. У меня нет проблем с захватом самого текста. Но синтаксический анализ текста требует дополнительной работы (для этого я надеюсь использовать соответствующий язык синтаксического анализа).   -  person Tal Galili    schedule 04.09.2014


Ответы (1)


В Weka некоторое время была доступна возможность визуализации дерева. Может быть, вы используете старую версию? Weka 3.6 и 3.7 поставляются с J48. Если вас интересует только его визуализация, ответы на этот вопрос показывают несколько способов: Визуализация дерева классификации Weka

person Josep Valls    schedule 01.05.2015