【问题标题】:R - partykit - custom model tree nodes and splitsR - partykit - 自定义模型树节点和拆分
【发布时间】:2018-02-23 07:41:24
【问题描述】:

在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() 返回)是否可行?我可以逐个节点构建树节点,然后将指定的函数拟合到终端节点吗?

【问题讨论】:

    标签: r tree decision-tree party


    【解决方案1】:

    原则上,可以手动构建一个"modelparty" 对象(由mob() 返回)。但是,在您引用的示例中,没有像 as.constparty() 这样的简单强制函数。原因是为了构建模型树,以及打印,尤其是使用它们进行预测,需要更多关于模型的详细信息。

    我建议先构建树形结构 ("partynode"),然后填充整个$info 槽(使用callformulaFormulatermsfit、@987654331 @、dotsnreg)。然后应该可以调用refit.modelparty() 来重新拟合所有终端节点中的模型。然后可以使用它来填充$node$info(带有coefficientsobjfunnobs,...)。

    免责声明:所有这些都是完全未经测试的。但是,除了模仿"modelparty",您当然也可以创建自己的方式将模型存储在"party" 对象中,并使用partykit 提供的更基本的构建块。

    【讨论】:

    • 感谢您的回答。我不确定我是否没有错过一些已经实现的工具......所以我没有重新发明轮子:)
    • 当然,没问题。我们将来可能会在这个方向上扩展partykit。我们正在研究一些可以插入不同拆分标准等的想法。但目前最好的方法是“滚动你自己的”树。
    猜你喜欢
    • 2017-06-17
    • 2017-11-06
    • 2012-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-26
    • 2016-11-17
    • 1970-01-01
    相关资源
    最近更新 更多