我希望有一种方法可以将rpart树对象转换为列表的嵌套列表(树状图)。理想情况下,每个节点中的属性将包括rpart对象中的信息(杂质、用于拆分的变量和规则、传递到该节点的观测值数量等)。
查看rpart$frame对象时,我不清楚如何读取它。有什么建议吗?
小小的例子:
library(rpart)
fit <- rpart(Kyphosis ~ Age + Number + Start, data = kyphosis)
fit$frame
var n wt dev yval complexity ncompete nsurrogate yval2.V1 yval2.V2 yval2.V3 yval2.V4 yval2.V5 yval2.nodeprob
1 Start 81 81 17 1 0.17647059 2 1 1.00000000 64.00000000 17.00000000 0.79012346 0.20987654 1.00000000
2 Start 62 62 6 1 0.01960784 2 2 1.00000000 56.00000000 6.00000000 0.90322581 0.09677419 0.76543210
4 <leaf> 29 29 0 1 0.01000000 0 0 1.00000000 29.00000000 0.00000000 1.00000000 0.00000000 0.35802469
5 Age 33 33 6 1 0.01960784 2 2 1.00000000 27.00000000 6.00000000 0.81818182 0.18181818 0.40740741
10 <leaf> 12 12 0 1 0.01000000 0 0 1.00000000 12.00000000 0.00000000 1.00000000 0.00000000 0.14814815
11 Age 21 21 6 1 0.01960784 2 0 1.00000000 15.00000000 6.00000000 0.71428571 0.28571429 0.25925926
22 <leaf> 14 14 2 1 0.01000000 0 0 1.00000000 12.00000000 2.00000000 0.85714286 0.14285714 0.17283951
23 <leaf> 7 7 3 2 0.01000000 0 0 2.00000000 3.00000000 4.00000000 0.42857143 0.57142857 0.08641975
3 <leaf> 19 19 8 2 0.01000000 0 0 2.00000000 8.00000000 11.00000000 0.42105263 0.57894737 0.23456790(函数ggdendro:::dendro_data.rpart可能有点帮助,但我不能让它真正解决问题)
发布于 2017-07-17 15:21:50
这是一个带有rpart2dendro函数的GitHub要点,用于将"rpart“类的对象转换为树状图。请注意,在输出对象中没有对分支进行加权,但是递归地修改树状图的"height“属性以获得成比例的分支长度应该是相当简单的。底部提供了Kyphosis示例。
https://stackoverflow.com/questions/45030723
复制相似问题