Menyesuaikan trainControl
Seperti yang Anda lihat di video, area under the ROC curve (AUC) adalah ringkasan satu angka yang sangat berguna untuk mengukur kemampuan model membedakan kelas positif dari negatif (misalnya tambang dari batu). AUC sebesar 0,5 tidak lebih baik daripada menebak acak, AUC 1,0 adalah model yang memprediksi secara sempurna, dan AUC 0,0 adalah model yang sepenuhnya anti-prediktif (yang jarang terjadi).
Sering kali ini jauh lebih berguna daripada sekadar memberi peringkat model berdasarkan akurasi pada satu ambang tertentu, karena model yang berbeda mungkin memerlukan langkah kalibrasi yang berbeda (melihat confusion matrix pada setiap langkah) untuk menemukan ambang klasifikasi optimal bagi model tersebut.
Anda dapat menggunakan fungsi trainControl() di caret untuk menggunakan AUC (alih-alih accuracy) saat menala parameter model Anda. Fungsi kemudahan twoClassSummary() memungkinkan Anda melakukan ini dengan mudah.
Saat menggunakan twoClassSummary(), pastikan selalu menyertakan argumen classProbs = TRUE atau model Anda akan menimbulkan error! (Anda tidak dapat menghitung AUC hanya dengan prediksi kelas. Anda juga harus memiliki probabilitas kelas.)
Latihan ini adalah bagian dari kursus
Machine Learning dengan caret di R
Petunjuk latihan
- Sesuaikan objek
trainControluntuk menggunakantwoClassSummaryalih-alihdefaultSummary. - Gunakan cross-validation 10-fold.
- Pastikan memberi tahu
trainControl()untuk mengembalikan probabilitas kelas.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# Create trainControl object: myControl
myControl <- trainControl(
method = "cv",
number = ___,
summaryFunction = defaultSummary,
classProbs = ___, # IMPORTANT!
verboseIter = TRUE
)