【发布时间】:2016-12-04 01:40:28
【问题描述】:
我正在使用 randomForest 进行数据分类,但我无法理解:
1- 我们如何获得信息(最好在 3 列的数据框中)告诉我们testData 中的真实分类(例如在下面的示例中Species 列)、随机森林的预测以及概率该预测的分数。例如,仅考虑以下数据集和 1 个案例,其中在 testData 中,物种(随机森林的盲信息)是 versicolor,但分类器错误地预测为 virginica概率得分为 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
【问题讨论】:
标签: r classification probability random-forest