各位大佬有知道randomforest如何输出带有prediction概率的结果

0
已邀请:
1

marxsong 2016-12-14 回答

你好,randomForest的predict函数中有个type参数可以设置,
type:
one of response, prob. or votes, indicating the type of output: predicted values, matrix of class probabilities, or matrix of vote counts. class is allowed, but automatically converted to "response", for backward compatibility.
"predict"(object, newdata, type="response", norm.votes=TRUE, predict.all=FALSE, proximity=FALSE, nodes=FALSE, cutoff, ...)
你要输出为概率值,则只需要令type = 'prob'
举个例子:
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,])
> predict(iris.rf, iris[ind == 2,])
18 25 40 44 48 55 60 65 71 78
setosa setosa setosa setosa setosa versicolor versicolor versicolor virginica virginica
82 92 97 99 100 103 105 110 113 114
versicolor versicolor versicolor versicolor versicolor virginica virginica virginica virginica virginica
115 118 123 127 128 129 134 139 141 142
virginica virginica virginica virginica virginica virginica versicolor virginica virginica virginica
Levels: setosa versicolor virginica
> predict(iris.rf, iris[ind == 2,],type = 'prob')
setosa versicolor virginica
18 1.000 0.000 0.000
25 1.000 0.000 0.000
40 1.000 0.000 0.000
44 1.000 0.000 0.000
48 1.000 0.000 0.000
55 0.000 0.994 0.006
60 0.004 0.964 0.032
65 0.000 1.000 0.000
71 0.002 0.342 0.656
78 0.000 0.282 0.718
82 0.000 1.000 0.000
92 0.000 0.994 0.006
97 0.000 1.000 0.000
99 0.000 0.976 0.024
100 0.000 1.000 0.000
103 0.000 0.002 0.998
105 0.000 0.000 1.000
110 0.008 0.000 0.992
113 0.000 0.002 0.998
114 0.000 0.042 0.958
115 0.000 0.010 0.990
118 0.008 0.000 0.992
123 0.000 0.002 0.998
127 0.000 0.336 0.664
128 0.000 0.128 0.872
129 0.000 0.002 0.998
134 0.000 0.558 0.442
139 0.000 0.346 0.654
141 0.000 0.000 1.000
142 0.000 0.024 0.976

要回复问题请先登录注册