Memvisualisasikan kinerja model

Pemodelan dengan tidymodels di R

David Svancer

Data Scientist

Memplot confusion matrix

Heatmap dengan autoplot()

  • Umpankan objek confusion matrix ke autoplot()
  • Set type ke 'heatmap'
  • Tampilkan hitungan yang paling dominan

 

conf_mat(leads_results,
         truth = purchased,
         estimate = .pred_class) %>%

autoplot(type = 'heatmap')

Heatmap confusion matrix

Pemodelan dengan tidymodels di R

Plot mosaik

Mosaik dengan autoplot()

  • Set type ke 'mosaic'
  • Tiap batang vertikal mewakili 100% nilai hasil aktual di kolom
  • Menampilkan secara visual
    • sensitivitas

 

conf_mat(leads_results,
         truth = purchased,
         estimate = .pred_class) %>% 
  autoplot(type = 'mosaic')

Plot mosaik confusion matrix batang sensitivitas

Pemodelan dengan tidymodels di R

Plot mosaik

Mosaik dengan autoplot()

  • Set type ke 'mosaic'
  • Tiap batang vertikal mewakili 100% nilai hasil aktual di kolom
  • Menampilkan secara visual
    • sensitivitas
    • spesifisitas
conf_mat(leads_results,
         truth = purchased,
         estimate = .pred_class) %>% 
  autoplot(type = 'mosaic')

Plot mosaik confusion matrix batang spesifisitas

Pemodelan dengan tidymodels di R

Ambang probabilitas

Ambang probabilitas default pada klasifikasi biner adalah 0,5

  • Jika probabilitas kelas positif ≥ 0,5, prediksi adalah kelas positif

 

leads_results

  • Jika .pred_yes ≥ 0,5 maka .pred_class menjadi 'yes' oleh fungsi predict() di tidymodels
leads_results
# A tibble: 332 x 4
   purchased .pred_class .pred_yes .pred_no
   <fct>     <fct>           <dbl>    <dbl>
 1 no        no             0.134     0.866
 2 yes       yes            0.729     0.271
 3 no        no             0.133     0.867
 4 no        no             0.0916    0.908
 5 yes       yes            0.598     0.402
 6 no        no             0.128     0.872
 7 yes       no             0.112     0.888
 8 no        no             0.169     0.831
 9 no        no             0.158     0.842
10 yes       yes            0.520     0.480
# ... with 322 more rows
Pemodelan dengan tidymodels di R

Menjelajah kinerja lintas ambang

Bagaimana kinerja model klasifikasi pada berbagai ambang?

  • Ambang probabilitas unik pada kolom .pred_yes di hasil data uji
    • Hitung spesifisitas dan sensitivitas untuk tiap ambang

 

ambang spesifisitas sensitivitas
0 0 1
0.11 0.01 0.98
0.15 0.05 0.97
... ... ...
0.84 0.89 0.08
0.87 0.94 0.02
0.91 0.99 0
1 1 0
Pemodelan dengan tidymodels di R

Memvisualisasikan kinerja lintas ambang

Kurva ROC (receiver operating characteristic)

  • Untuk memvisualisasikan kinerja di berbagai ambang probabilitas

 

  • Sensitivitas vs. (1 - spesifisitas) pada ambang unik di hasil data uji

Sensitivitas versus 1 minus spesifisitas

Pemodelan dengan tidymodels di R

Memvisualisasikan kinerja lintas ambang

Kurva ROC (receiver operating characteristic)

  • Untuk memvisualisasikan kinerja di berbagai ambang probabilitas

 

  • Sensitivitas vs (1 - spesifisitas) pada ambang unik di hasil data uji
    • Proporsi benar di antara positif aktual vs. proporsi salah di antara negatif aktual

Kurva ROC

Pemodelan dengan tidymodels di R

Kurva ROC

Kinerja optimal ada di titik (0, 1)

  • Idealnya, model klasifikasi menghasilkan titik dekat tepi kiri-atas di semua ambang

Kurva ROC ideal

Pemodelan dengan tidymodels di R

Kurva ROC

Kinerja optimal ada di titik (0, 1)

  • Idealnya, model klasifikasi menghasilkan titik dekat tepi kiri-atas di semua ambang

 

Kinerja buruk

  • Sensitivitas dan (1 - spesifisitas) sama di semua ambang
    • Sama dengan model yang menebak hasil dengan melempar koin adil secara acak

Kurva ROC dengan kinerja buruk

Pemodelan dengan tidymodels di R

Meringkas kurva ROC

Luas di bawah kurva ROC (ROC AUC) meringkas informasi kurva ROC dalam satu angka

Interpretasi praktis sebagai nilai huruf untuk kinerja klasifikasi

  • A - [0,9, 1]
  • B - [0,8, 0,9)
  • C - [0,7, 0,8)
  • D - [0,6, 0,7)
  • F - [0,5, 0,6)

Luas di bawah kurva ROC

Pemodelan dengan tidymodels di R

Menghitung kinerja lintas ambang

Fungsi roc_curve()

  • Menerima tibble hasil sebagai argumen pertama
  • Kolom truth berisi kategori hasil sebenarnya
  • Kolom probabilitas terestimasi untuk kelas positif
    • .pred_yes di tibble leads_results

 

  • Mengembalikan tibble dengan spesifisitas dan sensitivitas untuk semua ambang unik di .pred_yes
leads_results %>% 
  roc_curve(truth = purchased, .pred_yes)
# A tibble: 331 x 3
   .threshold specificity sensitivity
        <dbl>       <dbl>       <dbl>
 1     -Inf       0             1    
 2     0.0871     0             1    
 3     0.0888     0.00472       1    
 4     0.0893     0.00943       1    
 5     0.0896     0.0142        1    
 6     0.0902     0.0142        0.992
 7     0.0916     0.0142        0.983
 8     0.0944     0.0189        0.983
# ... with 323 more rows
Pemodelan dengan tidymodels di R

Memplot kurva ROC

Mengumpankan hasil roc_curve() ke fungsi autoplot() menghasilkan plot kurva ROC

 

leads_results %>% 
  roc_curve(truth = purchased, .pred_yes) %>% 
  autoplot()

Pemodelan dengan tidymodels di R

Menghitung ROC AUC

Fungsi roc_auc() dari yardstick menghitung ROC AUC

  • Tibble hasil model
  • Kolom truth
  • Kolom probabilitas terestimasi untuk kelas positif
roc_auc(leads_results,
        truth = purchased,
        .pred_yes)
# A tibble: 1 x 3
  .metric  .estimator .estimate
  <chr>      <chr>       <dbl>
1 roc_auc    binary      0.763
Pemodelan dengan tidymodels di R

Ayo berlatih!

Pemodelan dengan tidymodels di R

Preparing Video For Download...