我有一个来自ctree()
(party
包)的输出,如下所示。如何获得每个终端节点的拆分条件列表,例如sns <= 0, dta <= 1; sns <= 0, dta > 1
等?
1) sns <= 0; criterion = 1, statistic = 14655.021
2) dta <= 1; criterion = 1, statistic = 3286.389
3)* weights = 153682
2) dta > 1
4)* weights = 289415
1) sns > 0
5) dta <= 2; criterion = 1, statistic = 1882.439
6)* weights = 245457
5) dta > 2
7) dta <= 6; criterion = 1, statistic = 1170.813
8)* weights = 328582
7) dta > 6
谢谢
5条答案
按热度按时间64jmpszr1#
这个函数应该可以完成这项工作
测试
h79rfbju2#
如果您使用
ctree()
的新推荐partykit
实现,而不是旧的party
包,则可以使用函数.list.rules.party()
。这还没有正式导出,但可以用来提取所需的信息。62o28rlo3#
由于我需要这个函数,但对于分类数据,我或多或少地回答了问题@JoãoDaniel(我只测试了分类预测变量),接下来的函数:
下面是一个测试:
更新!现在函数支持分类变量和数值变量的混合!
flseospp4#
CtreePathFunc
函数以Hadley诗句(我认为更容易理解)的方式重写。也处理分类变量。测试
oxiaedzo5#
这是我的解决方案,它是递归的,所以它在更大的树上也运行得很好。下面是一个demo,后面是代码本身:
下面是实现代码: