我有许多大的随机森林分类模型(每个~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的等效输出的最有效方式而不重新运行randomforests(在我的情况下,与许多大型栅格,将花费太多时间)?
在此先感谢
一旦您运行了'iris.rf','predict'功能就不需要您重新运行该模型。一旦模型运行,预测速度应该更快,因为它们只是使用模型的输出来计算概率或响应。你是否试图找出运行预测的最有效方法是什么?或者你是否正试图弄清楚如何从'type =“prob”''中得到相同的值,以便从'type =“response”'中获取? –
是的,我同意。但是我没有访问模型(iris.rf) - 只有输出概率(iris.prob)。需要一种简单的方法将概率对象转换为单个分类对象 – treetopdewdrop
好的,所以有人已经运行了模型以及'iris.prob',并且您试图在不运行模型的情况下复制'iris.resp'?我知道运行该模型需要花费很多小时,而我只是试图找出问题 –