简述:
在原始 randomForest
调用中是否有什么我可以标记,以避免重新运行 predict
函数来获取预测类别的概率,而不仅仅是可能的类别?
详情:
我正在使用randomForest包。
我的模型类似于:
model <- randomForest(x=out.data[train.rows, feature.cols],
y=out.data[train.rows, response.col],
xtest=out.data[test.rows, feature.cols],
ytest=out.data[test.rows, response.col],
importance= TRUE)
其中,out.data
是一个数据框,feature.cols
包含数值型和分类变量,而response.col
是一个TRUE
/FALSE
二元变量,我将其强制转换为factor
,以便于randomForest
模型正确处理它。
所有运行良好,变量model
被正确地返回给我。然而,我无法找到一个标志或参数传递给randomForest
函数,使得model
可以返回TRUE或FALSE的概率。相反,我只能得到预测值。也就是说,如果我查看model$predicted
,我会看到类似以下内容:
FALSE
FALSE
TRUE
TRUE
FALSE
.
.
.
相反,我希望看到类似这样的内容:
FALSE TRUE
1 0.84 0.16
2 0.66 0.34
3 0.11 0.89
4 0.17 0.83
5 0.92 0.08
. . .
. . .
. . .
我能理解上述内容,但为了实现这一点,我需要像这样做:
tmp <- predict(model, out.data[test.rows, feature.cols], "prob")
[test.rows
捕获了在模型测试期间使用的行号。 这里没有显示详细信息,但很简单,因为测试行ID被输出到 model
中。]
然后一切都正常。 问题在于模型很大,运行时间非常长,甚至预测本身也需要一段时间。由于预测应该是完全不必要的(我只是想在测试数据集上计算ROC曲线,该数据集应该已经被计算),所以我希望跳过这一步。 在原始的 randomForest
调用中是否有标志可以标记以避免重新运行predict
函数?
randomForest
函数可用于任何类型的分析; 本问题可能会受益于一个可复现的示例,该示例展示了您正在运行的内容以及一些样本/代表性数据。我认为如果您只是使用predict(model, type="prob")
,速度会更快。这里,您需要从拟合的模型中得出预测,因此不需要传递newdata=
参数。但是,由于您没有提供任何测试方式,很难说这是否会解决您的问题。 - MrFlick