Saya menggunakan paket caret untuk melatih objek randomForest dengan 10x10CV.
library(caret)
tc <- trainControl("repeatedcv", number=10, repeats=10, classProbs=TRUE, savePred=T)
RFFit <- train(Defect ~., data=trainingSet, method="rf", trControl=tc, preProc=c("center", "scale"))
Setelah itu, saya menguji randomForest pada testSet (data baru)
RF.testSet$Prediction <- predict(RFFit, newdata=testSet)
Matriks kebingungan menunjukkan kepada saya, bahwa modelnya tidak terlalu buruk.
confusionMatrix(data=RF.testSet$Prediction, RF.testSet$Defect)
Reference
Prediction 0 1
0 886 179
1 53 126
Accuracy : 0.8135
95% CI : (0.7907, 0.8348)
No Information Rate : 0.7548
P-Value [Acc > NIR] : 4.369e-07
Kappa : 0.4145
Saya sekarang ingin menguji $ finalModel dan saya pikir itu harus memberi saya hasil yang sama, tetapi entah bagaimana saya terima
> RF.testSet$Prediction <- predict(RFFit$finalModel, newdata=RF.testSet)
> confusionMatrix(data=RF.testSet$Prediction, RF.testSet$Defect)
Confusion Matrix and Statistics
Reference
Prediction 0 1
0 323 66
1 616 239
Accuracy : 0.4518
95% CI : (0.4239, 0.4799)
No Information Rate : 0.7548
P-Value [Acc > NIR] : 1
Kappa : 0.0793
Apa yang saya lewatkan?
edit @topepo:
Saya juga belajar randomForest lain tanpa opsi preProcessed dan mendapat hasil lain:
RFFit2 <- train(Defect ~., data=trainingSet, method="rf", trControl=tc)
testSet$Prediction2 <- predict(RFFit2, newdata=testSet)
confusionMatrix(data=testSet$Prediction2, testSet$Defect)
Confusion Matrix and Statistics
Reference
Prediction 0 1
0 878 174
1 61 131
Accuracy : 0.8111
95% CI : (0.7882, 0.8325)
No Information Rate : 0.7548
P-Value [Acc > NIR] : 1.252e-06
Kappa : 0.4167
train
model ke-2 Anda akan mendapatkan hasil yang sedikit berbeda kecuali jika Anda mengatur seed number acak sebelum menjalankannya (lihat ?set.seed
). Nilai akurasi adalah 0,8135 dan 0,8111, yang cukup dekat dan hanya karena keacakan sampel dan perhitungan model.
RFFit
, di kedua kalinya Anda diprediksi menggunakan objek model, saya kira. Jadi perbedaannya mungkin dalam melewati hal-hal lain bersama dengan objek kereta yang memproses data tes baru Anda entah bagaimana berbeda daripada tanpa menggunakan objek kereta.