我有一份在R中生成的randomForest模型,但我没有用于创建该模型的原始数据。最终,我的目标是增加用于创建该模型的原始数据集以扩大模型的样本量。
我能想到两种方法来实现这一目标:1)直接向原模型添加数据。我尝试使用?update命令进行添加,但似乎并不像我想象的那样工作。下面的代码创建了一个非常简单的随机森林,然后尝试通过附加x和y数据来更新公式,但查看str结果时可以明显看出没有添加任何内容。
我能想到两种方法来实现这一目标:1)直接向原模型添加数据。我尝试使用?update命令进行添加,但似乎并不像我想象的那样工作。下面的代码创建了一个非常简单的随机森林,然后尝试通过附加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对象通过(mod $ y)具有原始响应变量z,但我不认为它具有原始的x和y值。但是,它确实拥有整个森林。
如果不清楚,请见谅。
update
仅更新调用,即公式,而不是数据--它需要原始数据并将重新拟合到这些数据。如果您删除原始的x、y和z对象,您会发现update
函数失败了。对于选项2,randomForest对象不包含原始数据。 - jmuhlenkamp