Tôi sử dụng gói caret để huấn luyện một đối tượng RandomForest với 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"))
Sau đó, tôi kiểm tra RandomForest trên testset (dữ liệu mới)
RF.testSet$Prediction <- predict(RFFit, newdata=testSet)
Ma trận nhầm lẫn cho tôi thấy rằng mô hình không tệ đến thế.
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
Bây giờ tôi muốn kiểm tra $ FinalModel và tôi nghĩ rằng nó sẽ cho tôi kết quả tương tự, nhưng bằng cách nào đó tôi nhận được
> 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
Tôi đang thiếu gì?
chỉnh sửa @topepo:
Tôi cũng đã học được một RandomForest khác mà không có tùy chọn tiền xử lý và nhận được một kết quả khác:
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
Đối với
—
topepo
train
mô hình thứ 2, bạn sẽ nhận được một kết quả hơi khác trừ khi bạn đặt hạt giống số ngẫu nhiên trước khi chạy nó (xem ?set.seed
). Các giá trị chính xác là 0,8135 và 0,811, khá gần nhau và chỉ do tính ngẫu nhiên của việc lấy mẫu lại và tính toán mô hình.
RFFit
, trong lần thứ hai bạn dự đoán sử dụng đối tượng mô hình, tôi đoán vậy. Vì vậy, sự khác biệt có thể là trong việc chuyển những thứ khác cùng với đối tượng xe lửa đã xử lý dữ liệu thử nghiệm mới của bạn bằng cách nào đó khác với việc không sử dụng đối tượng xe lửa.