如何解决随机森林回归:在每棵树的末端节点中提取训练样本
我想实现Bertsimas et al. (2020)中的 Predictive Prescription 方法,该方法将机器学习方法与优化方法结合在一起。为此,我需要查看森林中每个决策树的终端节点(分支区域)。
具体来说,我想为每棵树了解以下内容:
- 训练样本在哪个区域?
- 测试样品属于哪个区域?
我希望通过下面一张决策树的图片可以使我的问题更加清楚:
在这里,对于第一个终端节点,我对预测m不感兴趣,但是对构成预测基础的值y1,y4和y5感兴趣。
理想的结果是矩阵状的结构,其中每一列代表一棵树,每一行代表一个训练(测试)样本。对于每个样本和树,结构应给我可以找到样本的区域/终端节点的ID!
我查看了randomForest
和ranger
包,但没有运气找到任何相关的东西……有些论文提到使用caret
包实现该方法,但是他们没有没有提及如何绕过预测。
以下是使用ranger
的可重现的回归示例:
library(MASS)
library(e1071)
library(ranger)
#load data
data(Boston)
set.seed(111)
ind <- sample(2,nrow(Boston),replace = TRUE,prob=c(0.8,0.2))
train <- Boston[ind == 1,]
test <- Boston[ind == 2,]
#train random forest
boston.rf <- ranger(medv ~ .,data = train)
我们非常感谢您的帮助。干杯!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。