【发布时间】:2017-12-25 08:48:51
【问题描述】:
我有许多大型随机森林分类模型(每个运行时间约为 60 分钟),用于使用 type="prob" 选项预测栅格。我对光栅输出(每个 x 类作为光栅堆栈的概率)感到满意。但是,我想要一种简单的方法来将这些概率(具有 x 层的栅格堆栈,其中 x 是类的数量)转换为简单的一层分类(即只有获胜者,没有概率)。这相当于 type="response"。
这是一个简单的例子(它不是栅格,但仍然适用):
library(randomForest)
data(iris)
set.seed(111)
ind <- sample(2, nrow(iris), replace = TRUE, prob=c(0.8, 0.2))
iris.rf <- randomForest(Species ~ ., data=iris[ind == 1,])
iris.prob <- predict(iris.rf, type="prob")
iris.resp <- predict(iris.rf, type="response")
使用 iris.prob 对象获得 iris.resp 的等效输出而不重新运行随机森林的最有效方法是什么(在我的情况下,对于许多大型栅格,这将花费太多小时)?
提前致谢
【问题讨论】:
-
运行
iris.rf后,predict函数不需要您重新运行模型。一旦模型运行,预测应该会更快,因为它们只使用模型的输出来计算概率或响应。您是否试图找到运行预测的最有效方法是什么?或者您是否想弄清楚如何从type = "prob"中获得与从type = "response"中获得的相同值? -
是的,我同意。但我无权访问模型 (iris.rf) - 只有输出概率 (iris.prob)。需要一种简单的方法将概率对象转换为单个分类对象
-
好的,所以有人已经运行了模型以及
iris.prob,而您试图在不运行模型的情况下复制iris.resp?我知道运行模型需要很多小时,我只是想找出问题 -
没错。谢谢!
标签: r random-forest prediction