Come creare una matrice di confusione in python
La regressione logistica è un tipo di regressione che possiamo utilizzare quando la variabile di risposta è binaria.
Un modo comune per valutare la qualità di un modello di regressione logistica è creare una matrice di confusione , ovvero una tabella 2 × 2 che mostra i valori previsti del modello rispetto ai valori effettivi del set di dati di test.
Per creare una matrice di confusione per un modello di regressione logistica in Python, possiamo usare la funzione confusion_matrix() dal pacchetto sklearn :
from sklearn import metrics metrics.metrics. confusion_matrix (y_actual, y_predicted)
L’esempio seguente mostra come utilizzare questa funzione per creare una matrice di confusione per un modello di regressione logistica in Python.
Esempio: creazione di una matrice di confusione in Python
Supponiamo di avere le seguenti due tabelle contenenti i valori effettivi di una variabile di risposta nonché i valori previsti da un modello di regressione logistica:
#define array of actual values y_actual = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] #define array of predicted values y_predicted = [0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1]
Possiamo usare la funzione confusion_matrix() di sklearn per creare una matrice di confusione per questi dati:
from sklearn import metrics #create confusion matrix c_matrix = metrics. confusion_matrix (y_actual, y_predicted) #print confusion matrix print (c_matrix) [[6 4] [2 8]]
Se vogliamo, possiamo usare la funzione crosstab() di Pandas per creare una matrice di confusione visivamente più accattivante:
import pandas as pd y_actual = pd. Series (y_actual, name=' Actual ') y_predicted = pd. Series (y_predicted, name=' Predicted ') #create confusion matrix print (pd. crosstab (y_actual, y_predicted)) Predicted 0 1 Current 0 6 4 1 2 8
Le colonne mostrano i valori previsti per la variabile di risposta e le righe mostrano i valori effettivi.
Possiamo anche calcolare accuratezza, precisione e richiamo utilizzando le funzioni nel pacchetto sklearn:
#print accuracy of model print ( metrics.accuracy_score (y_actual, y_predicted)) 0.7 #print precision value of model print ( metrics.precision_score (y_actual, y_predicted)) 0.667 #print recall value of model print (metrics. recall_score (y_actual, y_predicted)) 0.8
Ecco un rapido aggiornamento su accuratezza, precisione e richiamo:
- Precisione : percentuale di previsioni corrette
- Precisione : correggere le previsioni positive rispetto al totale delle previsioni positive
- Promemoria : correzione delle previsioni positive rispetto al totale dei positivi effettivi
Ed ecco come ciascuna di queste metriche è stata effettivamente calcolata nel nostro esempio:
- Precisione : (6+8) / (6+4+2+8) = 0,7
- Precisione : 8 / (8+4) = 0,667
- Promemoria : 8 / (2+8) = 0,8
Risorse addizionali
Introduzione alla regressione logistica
I 3 tipi di regressione logistica
Regressione logistica vs regressione lineare