从R的RandomForest模型中提取或添加到R中的原始数据值



i有一个从R中的数据集生成的随机图案模型。我没有用于创建该模型的原始数据。最终,我想做的就是添加到用于创建该模型的原始数据集中,以增加该模型中的样本量。

我可以想到两种方法。1)直接将数据添加到原始模型中。我通过"更新"尝试了一下,但是它似乎没有我认为的方式。以下代码是一个非常简单的随机森林,然后尝试更新其他x和y数据的公式,但是从str结果看,很明显没有添加:

x <- 1:10
y <- 2:11
z <- 3:12
mod <- randomForest(z~x+y)
str(mod)
test <- cbind(runif(100,0,10),runif(100,0,10),runif(100,100,1000))
colnames(test) <- c("x","y","z")
mod2 <- update(mod,.~., test)
str(mod2)

从文档中,您似乎需要更新原始数据?

2)以某种方式将原始数据从模型对象中获取。这是不可取的,但是如果我这样做,我可以简单地将数据附加到原始数据并重建模型。RandomForest对象具有原始响应变量z via(mod $ y),但我不相信,没有原始的x和y值。但是,它确实有整个森林。

我很抱歉,如果这不清楚。

我也有一个类似的问题(这是我在这篇文章上偶然发现的),我最终找到了答案。

@jmuhlenkamp提到,RandomForest对象不包含原始数据。但是,您始终可以从用于创建对象的调用中提取数据。

这是一个示例:

require(randomForest)
data(iris)
rf = randomForest(Species~., data=iris)
data_name = getCall(rf)$data
iris_again = eval(data_name)

然后,您可以根据需要使用update更新公式,然后提供一个新的(在您的情况下修改)数据集。

最新更新