2
我想繪製一個ID3模型的結果。在WEKA和R中似乎沒有默認繪圖模塊。解析決策樹(來自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
樹結構很容易理解。有關如何解析這個問題的任何建議? (可能類似於回答from here?)
謝謝。
問題似乎是其他分類器有'graph'方法,通過調用'.jcall(obj $ classifier,「S」,「圖「),但這並不適用於Id3分類器。 'Id3'確實響應了'.jcall(x $分類符,「S」,「toString」)'這是用來打印你看到的樹的文本版本的東西。看起來它只是不會與R共享此信息;據我所知,它全部鎖定在JAVA世界。 (但我絕不是威卡的專家)。 – MrFlick 2014-09-03 20:48:58
嗨@MrFlick - 謝謝,這也是我注意到的。我沒有捕獲文本本身的問題。但解析文本需要更多的工作(我希望依賴於相關的解析語言) – 2014-09-03 21:06:05