10x10CV ile randomForest nesnesini eğitmek için düzeltme paketi kullanıyorum.
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"))
Bundan sonra, rastgele bir testSet (yeni veri) üzerinde test
RF.testSet$Prediction <- predict(RFFit, newdata=testSet)
Karışıklık matrisi bana modelin o kadar da kötü olmadığını gösteriyor.
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
Şimdi $ finalModel'i test etmek istiyorum ve bana aynı sonucu vereceğini düşünüyorum, ama her nasılsa
> 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
Neyi kaçırıyorum?
@topepo düzenle:
Ayrıca önişleme seçeneği olmadan başka bir randomForest öğrendim ve başka bir sonuç aldım:
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
2.
—
topepo
train
model için, rastgele sayı tohumunu çalıştırmadan önce ayarlamadığınız sürece biraz farklı bir sonuç elde edersiniz (bkz. ?set.seed
). Doğruluk değerleri 0.8135 ve 0.8111'dir, bunlar oldukça yakındır ve sadece yeniden örneklemenin rastgele olması ve model hesaplamaları nedeniyle.
RFFit
, ikinci kez model nesnesini kullanarak tahmin ettiğinizde, sanırım. Bu nedenle fark, yeni test verilerinizi işleyen tren nesnesiyle birlikte, tren nesnesini kullanmadan bir şekilde farklı şeyler aktarmak olabilir.