如何在随机森林中得到正确的类别,预测类别和预测概率?
问题描述:
我使用随机森林对数据的分类,我无法理解:如何在随机森林中得到正确的类别,预测类别和预测概率?
1,我们怎样才能获得它告诉我们的实际分类中testData
(例如,在下面的信息(最好在3列的数据帧)例如Species
列),由随机森林进行的预测以及该预测的概率分数。例如仅仅考虑下面的数据集,并且其中在testData
物种(对于随机森林盲信息)为云芝 1例,但它是由分类器错误地预测为锦葵与概率分数的0.67。我想这样的信息,但不知道怎样才能获得此
2 - 我们怎样才能获得testData
和trainingData
混淆矩阵这也给了我们class.error,就像在情况下,当我们打印模型。
data(iris)
set.seed(111)
ind <- sample(2, nrow(iris), replace = TRUE, prob=c(0.8, 0.2))
trainData <- iris[ind==1,]
testData <- iris[ind==2,]
#grow forest
iris.rf <- randomForest(Species ~ ., data=trainData)
print(iris.rf)
Call:
randomForest(formula = Species ~ ., data = trainData)
Type of random forest: classification
Number of trees: 500
No. of variables tried at each split: 2
OOB estimate of error rate: 3.33%
Confusion matrix:
setosa versicolor virginica class.error
setosa 45 0 0 0.00000000
versicolor 0 39 1 0.02500000
virginica 0 3 32 0.08571429
**#predict using the training again...**
iris.pred <- predict(iris.rf, trainData)
table(observed = trainData$Species, predicted = iris.pred)
predicted
observed setosa versicolor virginica
setosa 45 0 0
versicolor 0 40 0
virginica 0 0 35
**#Testing on testData**
irisPred<-predict(iris.rf, newdata = testData)
table(irisPred, testData$Species)
irisPred setosa versicolor virginica
setosa 5 0 0
versicolor 0 8 1
virginica 0 2 14
答
我使用的插入符包与trainControl运行随机森林:
library(caret)
library(PerformanceAnalytics)
model <- train(Species ~ .,trainData,
method='rf',TuneLength=3,
trControl=trainControl(
method='cv',number=10,
classProbs = TRUE))
model$results
irisPred_species<-predict(iris.rf, newdata = testData)
irisPred_prob<-predict(iris.rf, newdata = testData, "prob")
out.table <- data.frame(actual.species = testData$Species, pred.species = irisPred_species, irisPred_prob)
您可以得到由错误率:
iris.rf$err.rate
而且混淆矩阵:
iris.rf$confusion
你在哪里初始化/赋值给iri s.rf'对象? – Newbie
对不起,应该澄清一点:我遵循上面的代码(iris.rf