2015-10-30 27 views
5

Durante l'utilizzo del pacchetto Caret per l'apprendimento automatico, sono rimasto colpito dalla selezione di risultati "Positivi" predefinita di Caret, ovvero il primo livello del fattore di esito nei problemi di classificazione binaria.Pacchetto Caret - definizione Risultato positivo

Il pacchetto dice che può essere impostato al livello alternativo. Qualunque organismo può aiutarmi a definire il risultato positivo?

Ringraziandoti

+4

nella matrice di confusione è possibile impostare il parametro "positivo" per la classe di scelta: 'matrice di confusione (dati = predecessori in, riferimento = reali, positivi = "YOUR_POSITIVE_CLASS")' – r2d2oid

risposta

8

guarda questo esempio. Esteso questo dagli esempi di caret con confusionMatrix.

lvs <- c("normal", "abnormal") 
truth <- factor(rep(lvs, times = c(86, 258)), 
       levels = rev(lvs)) 
pred <- factor(
    c(
    rep(lvs, times = c(54, 32)), 
    rep(lvs, times = c(27, 231))),    
    levels = rev(lvs)) 

xtab <- table(pred, truth) 

str(truth) 
Factor w/ 2 levels "abnormal","normal": 2 2 2 2 2 2 2 2 2 2 ... 

Perché anormale è il primo livello, questa sarà la classe predefinita positiva

confusionMatrix(xtab) 

Confusion Matrix and Statistics 

      truth 
pred  abnormal normal 
    abnormal  231  32 
    normal   27  54 

       Accuracy : 0.8285   
       95% CI : (0.7844, 0.8668) 
    No Information Rate : 0.75    
    P-Value [Acc > NIR] : 0.0003097  

        Kappa : 0.5336   
Mcnemar's Test P-Value : 0.6025370  

      Sensitivity : 0.8953   
      Specificity : 0.6279   
     Pos Pred Value : 0.8783   
     Neg Pred Value : 0.6667   
      Prevalence : 0.7500   
     Detection Rate : 0.6715   
    Detection Prevalence : 0.7645   
     Balanced Accuracy : 0.7616   

     'Positive' Class : abnormal  

Per passare alla classe positiva = normale, basta aggiungere questo nella matrice di confusione. Notare le differenze con l'output precedente, le differenze iniziano a comparire con la sensibilità e altri calcoli.

confusionMatrix(xtab, positive = "normal") 

Confusion Matrix and Statistics 

      truth 
pred  abnormal normal 
    abnormal  231  32 
    normal   27  54 

       Accuracy : 0.8285   
       95% CI : (0.7844, 0.8668) 
    No Information Rate : 0.75    
    P-Value [Acc > NIR] : 0.0003097  

        Kappa : 0.5336   
Mcnemar's Test P-Value : 0.6025370  

      Sensitivity : 0.6279   
      Specificity : 0.8953   
     Pos Pred Value : 0.6667   
     Neg Pred Value : 0.8783   
      Prevalence : 0.2500   
     Detection Rate : 0.1570   
    Detection Prevalence : 0.2355   
     Balanced Accuracy : 0.7616   

     'Positive' Class : normal 
+0

Grazie per soluzione elegante. – duvvurum

Problemi correlati