Come creare una curva di richiamo di precisione in python
Quando si utilizzanomodelli di classificazione nell’apprendimento automatico, due metriche che utilizziamo spesso per valutare la qualità del modello sono la precisione e il richiamo.
Precisione : correggere le previsioni positive rispetto al totale delle previsioni positive.
Questo viene calcolato come segue:
- Precisione = Veri positivi / (Veri positivi + Falsi positivi)
Promemoria : correzione delle previsioni positive rispetto al totale dei positivi effettivi
Questo viene calcolato come segue:
- Promemoria = Veri positivi / (Veri positivi + Falsi negativi)
Per visualizzare la precisione e il richiamo di un determinato modello, possiamo creare una curva di richiamo precisione . Questa curva mostra il compromesso tra precisione e richiamo per soglie diverse.
Il seguente esempio passo passo mostra come creare una curva di richiamo di precisione per un modello di regressione logistica in Python.
Passaggio 1: importa i pacchetti
Per prima cosa importeremo i pacchetti necessari:
from sklearn import datasets from sklearn. model_selection import train_test_split from sklearn. linear_model import LogisticRegression from sklearn. metrics import precision_recall_curve import matplotlib. pyplot as plt
Passaggio 2: adattare il modello di regressione logistica
Successivamente, creeremo un set di dati e adatteremo ad esso un modello di regressione logistica:
#create dataset with 5 predictor variables
X, y = datasets. make_classification (n_samples= 1000 ,
n_features= 4 ,
n_informative= 3 ,
n_redundant= 1 ,
random_state= 0 )
#split dataset into training and testing set
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size= .3 , random_state= 0 )
#fit logistic regression model to dataset
classifier = LogisticRegression()
classify. fit (X_train, y_train)
#use logistic regression model to make predictions
y_score = classify. predict_proba (X_test)[:, 1 ]
Passaggio 3: creare la curva di richiamo di precisione
Successivamente, calcoleremo la precisione e il richiamo del modello e creeremo una curva di richiamo precisione:
#calculate precision and recall
precision, recall, thresholds = precision_recall_curve(y_test, y_score)
#create precision recall curve
fig, ax = plt. subplots ()
ax. plot (recall, precision, color=' purple ')
#add axis labels to plot
ax. set_title (' Precision-Recall Curve ')
ax. set_ylabel (' Precision ')
ax. set_xlabel (' Recall ')
#displayplot
plt. show ()
L’asse x mostra il richiamo e l’asse y mostra la precisione per diverse soglie.
Si noti che all’aumentare del richiamo, la precisione diminuisce.
Questo rappresenta il compromesso tra i due parametri. Per aumentare il richiamo del nostro modello, la precisione deve diminuire e viceversa.
Risorse addizionali
Come eseguire la regressione logistica in Python
Come creare una matrice di confusione in Python
Come interpretare una curva ROC (con esempi)