r - How to get J48 size and number of leaves -
if build j48 tree by:
library(rweka) fit <- j48(species~., data=iris)
i following result:
> fit j48 pruned tree ------------------ petal.width <= 0.6: setosa (50.0) petal.width > 0.6 | petal.width <= 1.7 | | petal.length <= 4.9: versicolor (48.0/1.0) | | petal.length > 4.9 | | | petal.width <= 1.5: virginica (3.0) | | | petal.width > 1.5: versicolor (3.0/1.0) | petal.width > 1.7: virginica (46.0/1.0) number of leaves : 5 size of tree : 9
i number of leaves
variable n
(so n
5
) , size of tree
s
(so s
9
).
is there way information directly j48 tree?
as pointed out @lyzander not easy on j48
object directly. generally, objects returned fitting functions in rweka
contain relatively few informations on r side (e.g., call , fitted predictions). main ingredient typically reference java object built weka weka's own methods can applied on java side via .jcall
, returned in r.
however, j48
trees easy transform information java side r object standard functions , methods available. partykit
package provides coercion function transforms j48
trees constparty
objects (recursive partitions constant fits in leaves). methods length()
, width()
, or depth()
can used query number of nodes, leaves, , depth of tree, respectively.
library("rweka") fit <- j48(species ~ ., data = iris) library("partykit") p <- as.party(fit) length(p) ## [1] 9 width(p) ## [1] 5 depth(p) ## [1] 4
furthermore, predict()
, plot()
, print()
, many other tools available party
object.
i recommend using approach on text parsing suggested @lyzander because as.party
conversion not rely on potentially error-prone text computations. instead, internally calls weka's own graph
generator (via .jcall
) , parses constparty
structure.
Comments
Post a Comment