Matriks kebingungan dan akurasi pohon final kita
Dalam beberapa latihan terakhir, Anda telah membangun cukup banyak pohon keputusan hasil pangkasan, totalnya ada empat. Seperti yang Anda lihat, jumlah pemisahan akhir cukup bervariasi dari satu pohon ke pohon lainnya:
ptree_undersample # 7 splits
ptree_prior # 9 splits
ptree_loss_matrix # 24 splits
ptree_weights # 6 splits
Sekarang penting untuk mengetahui pohon mana yang berkinerja terbaik dilihat dari akurasi. Untuk memperoleh akurasi, Anda akan mulai dengan membuat prediksi menggunakan himpunan uji, dan menyusun matriks kebingungan untuk masing-masing pohon ini. Tambahkan argumen type = "class" saat melakukan prediksi ini. Dengan begitu, Anda tidak perlu menetapkan nilai batas (cut-off).
Meski demikian, penting untuk diingat bahwa bukan hanya akurasi yang penting, tetapi juga sensitivitas dan spesifisitas. Selain itu, memprediksi probabilitas alih-alih nilai biner (0 atau 1) memiliki keuntungan karena nilai batas dapat digeser. Namun, tantangannya adalah memilih nilai batas tersebut. Anda akan kembali ke topik ini di bab berikutnya.
Sebagai pengingat, berikut cara menghitung akurasi: $$\textrm{Classification accuracy} = \frac{(TP + TN)}{(TP + FP + TN + FN)}$$
Latihan ini adalah bagian dari kursus
Pemodelan Risiko Kredit di R
Petunjuk latihan
- Gunakan
predict()untuk membuat prediksi bagi keempat pohon.test_setharus dimasukkan pada argumennewdata. Jangan lupa sertakantype = "class"! - Susun matriks kebingungan untuk masing-masing pohon keputusan ini. Gunakan fungsi
table(), dan masukkan status "benar" (menggunakantest_set$loan_status) terlebih dahulu, diikuti dengan prediksinya. - Hitung akurasi menggunakan masing-masing matriks kebingungan tersebut.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# Make predictions for each of the pruned trees using the test set.
pred_undersample <- predict(ptree_undersample, newdata = test_set, type = "class")
pred_prior <-
pred_loss_matrix <-
pred_weights <-
# construct confusion matrices using the predictions.
confmat_undersample <- table(test_set$loan_status, pred_undersample)
confmat_prior <-
confmat_loss_matrix <-
confmat_weights <-
# Compute the accuracies
acc_undersample <- sum(diag(confmat_undersample)) / nrow(test_set)
acc_prior <-
acc_loss_matrix <-
acc_weights <-