最近、R のランダム フォレスト パッケージをいじり始めました。フォレストを成長させた後、同じデータセット (つまり、トレーニング データセット) を使用して応答を予測しようとしました。フォレスト オブジェクト自体。newdata 引数に何か問題があるのではないかと思いましたが、ドキュメントに記載されている例に従って t を実行したところ、同じ問題が発生しました。Species データセットを使用した例を次に示します。これは、作成者がドキュメントで使用したのと同じ例ですが、同じデータセットを使用してトレーニングと予測を行っています...ここでの質問は、なぜこれら 2 つの混同行列が同一でないのかということです。
data(iris)
set.seed(111)
ind <- sample(2, nrow(iris), replace = TRUE, prob=c(0.8, 0.2))
#grow forest
iris.rf <- randomForest(Species ~ ., data=iris[ind == 1,])
print(iris.rf)
Call:
randomForest(formula = Species ~ ., data = iris[ind == 1, ])
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, iris[ind == 1,])
table(observed = iris[ind==1, "Species"], predicted = iris.pred)
predicted
observed setosa versicolor virginica
setosa 45 0 0
versicolor 0 40 0
virginica 0 0 35