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.

Curva di richiamo di precisione in Python

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 () 

Curva di richiamo di precisione in Python

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)

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *