Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从R中的randomForest模型提取或添加原始数据值_R_Random Forest - Fatal编程技术网

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

从R中的randomForest模型提取或添加原始数据值,r,random-forest,R,Random Forest,我有一个从R中的数据集生成的随机森林模型。我没有用于创建该模型的原始数据。最后,我想做的是添加到用于创建该模型的原始数据集,以增加该模型中的样本大小 我可以想出两种方法。1) 直接将数据添加到原始模型。我试着通过?更新,但它似乎没有工作的方式,我认为它是。下面的代码创建了一个非常简单的随机林,然后尝试使用额外的x和y数据更新公式,但从str结果来看,显然没有添加任何内容: x <- 1:10 y <- 2:11 z <- 3:12 mod <- randomForest(

我有一个从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)
x我有一个类似的问题(我是如何偶然发现这篇文章的),最后我找到了答案

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

下面是一个例子:

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

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

欢迎使用Stack Overflow!我不能执行你的代码;函数
randomForest
来自哪个软件包?快速查看,我认为这两个选项都不起作用
update
只更新调用,即公式,而不是数据——它需要原始数据,并将重新适应此数据。如果删除原始的x、y和z对象,您将看到
更新功能失败。对于选项2,randomForest对象不包含原始数据。库是randomForest。感谢您的响应jmuhlenkamp。我同意这似乎是不可能的,至少以一种直截了当的方式。奇怪的是,原始响应变量位于randomforest模型对象和整个森林中,而不是原始预测值(看起来是这样的)。。。或者,对于整个森林,人们无法以某种方式用一组新的x、y和z进行更新。太糟糕了,也许有更聪明的方法。