私は少し混乱しています:キャレットを介してトレーニングされたモデルの結果は、元のパッケージのモデルとどう違うのですか?キャレットパッケージでRandomForestのFinalModelを使用して予測する前に前処理が必要かどうかを読みました。ただし、ここでは前処理を使用しません。
キャレットパッケージを使用して、さまざまなmtry値を調整することにより、さまざまなランダムフォレストをトレーニングしました。
> cvCtrl = trainControl(method = "repeatedcv",number = 10, repeats = 3, classProbs = TRUE, summaryFunction = twoClassSummary)
> newGrid = expand.grid(mtry = c(2,4,8,15))
> classifierRandomForest = train(case_success ~ ., data = train_data, trControl = cvCtrl, method = "rf", metric="ROC", tuneGrid = newGrid)
> curClassifier = classifierRandomForest
mtry = 15がtraining_dataの最適なパラメーターであることがわかりました。
> curClassifier
...
Resampling results across tuning parameters:
mtry ROC Sens Spec ROC SD Sens SD Spec SD
4 0.950 0.768 0.957 0.00413 0.0170 0.00285
5 0.951 0.778 0.957 0.00364 0.0148 0.00306
8 0.953 0.792 0.956 0.00395 0.0152 0.00389
10 0.954 0.797 0.955 0.00384 0.0146 0.00369
15 0.956 0.803 0.951 0.00369 0.0155 0.00472
ROC was used to select the optimal model using the largest value.
The final value used for the model was mtry = 15.
ROC曲線と混同マトリックスを使用してモデルを評価しました。
##ROC-Curve
predRoc = predict(curClassifier, test_data, type = "prob")
myroc = pROC::roc(test_data$case_success, as.vector(predRoc[,2]))
plot(myroc, print.thres = "best")
##adjust optimal cut-off threshold for class probabilities
threshold = coords(myroc,x="best",best.method = "closest.topleft")[[1]] #get optimal cutoff threshold
predCut = factor( ifelse(predRoc[, "Yes"] > threshold, "Yes", "No") )
##Confusion Matrix (Accuracy, Spec, Sens etc.)
curConfusionMatrix = confusionMatrix(predCut, test_data$case_success, positive = "Yes")
結果の混同マトリックスと精度:
Confusion Matrix and Statistics
Reference
Prediction No Yes
No 2757 693
Yes 375 6684
Accuracy : 0.8984
....
次に、基本的なrandomForestパッケージを使用して、同じパラメーターと同じtraining_dataでランダムロレストをトレーニングしました。
randomForestManual <- randomForest(case_success ~ ., data=train_data, mtry = 15, ntree=500,keep.forest=TRUE)
curClassifier = randomForestManual
再び、上記とまったく同じtest_dataの予測を作成し、上記と同じコードで混同マトリックスを評価しました。しかし今、私はさまざまな手段を得ました:
Confusion Matrix and Statistics
Reference
Prediction No Yes
No 2702 897
Yes 430 6480
Accuracy : 0.8737
....
理由は何ですか?私は何が欠けていますか?
seeds
trainControl