BaşlayınÜcretsiz Başlayın

Son ağaçlarımızın karmaşıklık (confusion) matrisleri ve doğruluğu

Son birkaç egzersizde, toplamda dört adet olmak üzere epeyce budanmış karar ağacı oluşturdun. Gördüğün gibi, nihai bölünme sayısı ağaçtan ağaca epey değişiyor:

ptree_undersample  # 7 bölünme
ptree_prior  # 9 bölünme
ptree_loss_matrix  # 24 bölünme
ptree_weights  # 6 bölünme

Şimdi doğruluk açısından hangi ağacın en iyi performansı verdiğini bilmek önemli. Doğruluğu elde etmek için, test setini kullanarak tahminler yapacak ve bu ağaçların her biri için bir karmaşıklık (confusion) matrisi oluşturacaksın. Bu tahminleri yaparken type = "class" argümanını ekleyeceksin. Böylece bir eşik (cut-off) belirlemene gerek kalmaz.

Yine de, yalnızca doğruluğun değil, duyarlılık (sensitivity) ve özgüllüğün (specificity) de önemli olduğunun farkında olmak gerekir. Ayrıca, ikili değerler (0 veya 1) yerine olasılıkları tahmin etmenin avantajı, eşiğin hareket ettirilebilmesidir. Öte yandan, burada zorluk eşik seçiminin kendisidir. Buna bir sonraki bölümde döneceksin.

Hatırlatmaya ihtiyaç duyarsan, doğruluğu şöyle hesaplayabilirsin: $$\textrm{Classification accuracy} = \frac{(TP + TN)}{(TP + FP + TN + FN)}$$

Bu egzersiz

R ile Kredi Riski Modellemesi

kursunun bir parçasıdır
Kursu Görüntüle

Egzersiz talimatları

  • Tüm dört ağaç için predict() ile tahmin yap. Argüman olarak newdata içinde test_set yer almalı. type = "class" eklemeyi unutma!
  • Bu karar ağaçlarının her biri için karmaşıklık (confusion) matrisi oluştur. table() fonksiyonunu kullan ve önce "gerçek" durumu ( test_set$loan_status ), ardından tahmini ekle.
  • Her bir karmaşıklık matrisi için doğruluğu hesapla.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

# 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 <-
Kodu Düzenle ve Çalıştır