提取 lmtree 对象的拆分列表
Extracting list of the split of a lmtree object
我正在使用 partykit 包中的 lmtree 函数
我正在寻找类似于 path.rpart 函数的函数,即
一个函数,它在列表中给出从根到所选节点的路径上的拆分。
它想要类似这样的东西:
set.seed(1)
library(rpart)
x=runif(100);z=runif(100);y=jitter(ifelse(z>.5,2*x,3*x+2),amount=.1);
rp=rpart(x~y)
path.rpart(rp,5)
#node number: 5
#root
#y< 0.8785
#y>=0.4081
使用 lmtree :
library(partykit)
tr=lmtree(x~y|z)
#and here I need a function similar to path.rpart
我检查了 node_party 和 get_paths 函数,但这不是我需要的。
有没有人建议从 lmtree 对象中提取此信息?
非常感谢您的帮助。
classlmtree
的模型继承自 party
,就像 ctree()
的输出一样。因此,此处针对 ctree()
输出在 SO 上讨论的相同方法也可以应用于 lmtree()
输出。即,您可以使用(仍未导出).list.rules.party()
函数:
partykit:::.list.rules.party(tr)
## 2 3
## "z <= 0.495593577856198" "z > 0.495593577856198"
有关进一步改编,请参阅:另请参阅:
- ctree() - How to get the list of splitting conditions for each terminal node?
- Get decision tree rule/path pattern for every row of predicted dataset for rpart/ctree package in R
我正在使用 partykit 包中的 lmtree 函数 我正在寻找类似于 path.rpart 函数的函数,即 一个函数,它在列表中给出从根到所选节点的路径上的拆分。
它想要类似这样的东西:
set.seed(1)
library(rpart)
x=runif(100);z=runif(100);y=jitter(ifelse(z>.5,2*x,3*x+2),amount=.1);
rp=rpart(x~y)
path.rpart(rp,5)
#node number: 5
#root
#y< 0.8785
#y>=0.4081
使用 lmtree :
library(partykit)
tr=lmtree(x~y|z)
#and here I need a function similar to path.rpart
我检查了 node_party 和 get_paths 函数,但这不是我需要的。 有没有人建议从 lmtree 对象中提取此信息? 非常感谢您的帮助。
classlmtree
的模型继承自 party
,就像 ctree()
的输出一样。因此,此处针对 ctree()
输出在 SO 上讨论的相同方法也可以应用于 lmtree()
输出。即,您可以使用(仍未导出).list.rules.party()
函数:
partykit:::.list.rules.party(tr)
## 2 3
## "z <= 0.495593577856198" "z > 0.495593577856198"
有关进一步改编,请参阅:另请参阅:
- ctree() - How to get the list of splitting conditions for each terminal node?
- Get decision tree rule/path pattern for every row of predicted dataset for rpart/ctree package in R