ÎncepețiÎncepe gratuit

Matricele de confuzie și acuratețea arborilor finali

În exercițiile anterioare, ai construit mai mulți arbori de decizie tăiați – în total patru. După cum poți observa, numărul final de diviziuni variază destul de mult de la un arbore la altul:

ptree_undersample  # 7 splits
ptree_prior  # 9 splits
ptree_loss_matrix  # 24 splits
ptree_weights  # 6 splits

Acum este important să știi care arbore are cea mai bună acuratețe. Pentru a o calcula, vei începe prin a face predicții pe setul de testare și vei construi matricea de confuzie pentru fiecare dintre acești arbori. Vei adăuga argumentul type = "class" atunci când faci predicțiile – astfel nu mai este nevoie să stabilești un prag de decizie.

Totuși, este important să reții că nu doar acuratețea contează, ci și sensibilitatea și specificitatea. În plus, predicția probabilităților în loc de valori binare (0 sau 1) are avantajul că pragul de decizie poate fi ajustat. Pe de altă parte, alegerea acestui prag poate fi dificilă. Vei reveni la acest subiect în capitolul următor.

Ca memento, iată formula pentru calculul acurateței: $$\textrm{Classification accuracy} = \frac{(TP + TN)}{(TP + FP + TN + FN)}$$

Acest exercițiu face parte din cursul

Modelarea riscului de credit în R

Vezi cursul

Instrucțiuni pentru exercițiu

  • Folosește predict() pentru a face predicții cu toți cei patru arbori. Include test_set în argumentul newdata și nu uita să adaugi type = "class"!
  • Construiește matricele de confuzie pentru fiecare arbore de decizie. Folosește funcția table() și include mai întâi statusul „real" (prin test_set$loan_status), urmat de predicție.
  • Calculează acuratețea folosind fiecare dintre matricele de confuzie.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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 <-
Editează și rulează codul