在 partykit 包中,有一种通过指定预测器和分割来构建自定义树的方法。例如:
data("WeatherPlay", package = "partykit")
#create a split
sp_o <- partysplit(3L, breaks = 75)
#create a node
n1 <- partynode(id = 1L, split = sp_o, kids = lapply(2L:3L, partynode))
#and make a "tree" out of it
t2 <- party(
n1,
data = WeatherPlay,
fitted = data.frame(
"(fitted)" = fitted_node(n1, data = WeatherPlay),
"(response)" = WeatherPlay$play,
check.names = FALSE
),
terms = terms(play ~ ., data = WeatherPlay),
)
t2 <- as.constparty(t2)
t2
plot(t2)
这对于模型树(由 mob() 返回)可能吗?我可以逐个节点构建树,然后将指定的函数拟合到终端节点吗?
最佳答案
原则上,可以手动构建一个“modelparty”
对象(由mob()
返回)。但是,您引用的示例中没有像 as.constparty()
这样的简单强制函数。原因是为了构建模型树,以及打印模型树,尤其是用模型树进行预测,需要有关模型的更多详细信息。
我建议首先构建树结构(“partynode”
),然后填充整个$info
槽(使用call
, 公式
、公式
、术语
、拟合
、控制
、点
和 nreg
)。然后应该可以调用 refit.modelparty() 来重新拟合所有终端节点中的模型。然后可以用它来填充 $node$info
(使用 coefficients
、objfun
、nobs
、. ..).
免责声明:所有这些都完全未经测试。但是,当然,您也可以创建自己的方式将模型存储在 "party"
对象中,而不是模仿 "modelparty"
,并且只需使用提供的更多基本构建 block 由 partykit
提供。
关于R - partykit - 自定义模型树节点和分割,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46217113/