R - partykit - 自定义模型树节点和拆分
R - partykit - custom model tree nodes and splits
在 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
、formula
、Formula
、terms
、fit
、control
、dots
和 nreg
)。然后应该可以调用 refit.modelparty()
来改装所有终端节点中的模型。然后这可以用来填充 $node$info
(使用 coefficients
、objfun
、nobs
、...)。
免责声明:所有这些都是完全未经测试的。但是,除了模仿 "modelparty"
,您当然也可以创建自己的方式来将模型存储在 "party"
对象中,并且只使用 partykit
.[=31 提供的更多基本构建块=]
在 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
、formula
、Formula
、terms
、fit
、control
、dots
和 nreg
)。然后应该可以调用 refit.modelparty()
来改装所有终端节点中的模型。然后这可以用来填充 $node$info
(使用 coefficients
、objfun
、nobs
、...)。
免责声明:所有这些都是完全未经测试的。但是,除了模仿 "modelparty"
,您当然也可以创建自己的方式来将模型存储在 "party"
对象中,并且只使用 partykit
.[=31 提供的更多基本构建块=]