ctree()
封装内的增强重新实现partykit
还具有更灵活的绘图功能。具体来说,node_barplot()
面板函数获得了一个mainlab
可用于自定义主标签的参数。例如虹膜数据:
library("partykit")
ct <- ctree(Species ~ ., data = iris)
您可以设置标签向量,然后提供访问这些标签的函数:
lab <- paste("Foo", 1:7)
ml <- function(id, nobs) lab[as.numeric(id)]
plot(ct, tp_args = list(mainlab = ml))
当然,上面的例子意义不大,但可以通过一些编码来修改以完成你想要的。
但是,请注意使用该weights
参数对某些观测值进行上采样。该ctree()
函数确实将weights
案例权重视为案例权重,因此用于拆分的显着性检验确实发生了变化。随着观察次数的增加,所有 p 值都会变小,因此树会选择更多的拆分(除非mincriterion
同时增加)。将ct
上面的树与 4 个终端节点进行比较
ct2 <- ctree(Species ~ ., data = iris, weights = rep(2, 150))
ct3 <- ctree(Species ~ ., data = iris, weights = rep(2, 150), mincriterion = 0.999)
结果终端节点数为
c(width(ct), width(ct2), width(ct3))
[1] 4 6 4