是否可以使用基于模型的树即partykit包中的`mob`构建随机森林?

问题描述

我正在尝试使用partykit软件包中基于模型的回归树来构建随机森林。我使用mob()函数用户定义的fit()函数构建了基于模型的树,该函数在终端节点处返回对象。

partykit中有cforest()个仅使用ctree()类型的树。我想知道是否可以修改cforest()或编写一个函数,该函数从基于模型的树构建随机森林,该模型在终端节点处返回对象。我想使用终端节点中的对象进行预测。任何帮助深表感谢。预先谢谢你。

编辑:我构建的树类似于此处的树-> https://stackoverflow.com/a/37059827/14168775

如何使用与上述答案类似的树来构建随机森林?

解决方法

尽管大多数构建基块都可用,但目前尚无使用mob()的基于模型的常规林的固定解决方案。但是,我们目前正在重新实现mob()的后端,以便我们可以更轻松地利用cforest()底层的基础结构。另外,mob()ctree()慢很多,这在学习森林方面有些不便。

当前最好的选择是将cforest()与自定义ytrafo一起使用。这些也可以适应基于模型的转换,就像mob()中的分数一样。实际上,在许多情况下,ctree()mob()具有与转换相同的得分功能时,会产生非常相似的结果。

此会议演示中提供了一个可行的示例:

海蒂·塞博尔德(Heidi Seibold),阿希姆·泽利(Achim Zeileis),托斯滕·霍特霍恩(Torsten Hothorn)(2017)。 “使用基于模型的随机森林进行个体治疗效果预测。” 在“ Psychoco 2017-心理计量计算国际研讨会”研讨会上发表, 奥地利维也纳WUWirtschaftsuniversität。 网址https://eeecon.uibk.ac.at/~zeileis/papers/Psychoco-2017.pdf

在专用软件包model4you中也实现了用于个体治疗效果预测的基于模型的随机森林的特殊情况,该软件包使用上面介绍中的方法,并且可以从CRAN获得。另请参阅:

Heidi Seibold,Achim Zeileis,Torsten Hothorn(2019)。 “ model4you:用于个性化治疗效果评估的R包。” 开放研究软件期刊 7 (17),1-6。 doi:10.5334/jors.219