2016-07-29 29 views
0

私は、データの分類のためのランダムフォレストを使用していると私は理解することができません:Rのランダムフォレストで正しいクラス、予測クラス、予測確率を得るには?

我々は以下にtestData(例えばに私たちに本当の分類を伝える(好ましくは3列のデータフレームで)情報を入手するにはどうすればよいの1-例Species列)、ランダムフォレストによる予測、およびその予測の確率スコア。例えば直下データセット考慮しtestDataにおける種(ランダムフォレストの盲検情報)ベルシカラーた1ケースそれは0.67の確率スコアを有するvirginicaのとして分類器によって誤って予測されました。私はこのような情報が欲しいが、これをどうすれば得ることができるのかわからない。testDatatrainingDataの混乱行列を得るにはどうすればよいのだろうか?モデル。

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 

答えて

1

私は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 
+0

ここで、 'iri 'に値を初期化/ s.rf'オブジェクト? – Newbie

+0

申し訳ございませんが、上記のコードを守ってください(iris.rf < - randomForest(Species〜、data = trainData))。 –

関連する問題