MulaiMulai sekarang secara gratis

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

Lihat Kursus

Petunjuk latihan

  • Gunakan predict() untuk membuat prediksi bagi keempat pohon. test_set harus dimasukkan pada argumen newdata. Jangan lupa sertakan type = "class"!
  • Susun matriks kebingungan untuk masing-masing pohon keputusan ini. Gunakan fungsi table(), dan masukkan status "benar" (menggunakan test_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 <-
Edit dan Jalankan Kode