Comment créer une courbe de rappel de précision en Python



Lors de l’utilisation de modèles de classification dans l’apprentissage automatique, deux mesures que nous utilisons souvent pour évaluer la qualité du modèle sont la précision et le rappel.

Précision : Corrigez les prédictions positives par rapport au total des prédictions positives.

Ceci est calculé comme suit :

  • Précision = Vrais Positifs / (Vrais Positifs + Faux Positifs)

Rappel : Corriger les prédictions positives par rapport au total des positifs réels

Ceci est calculé comme suit :

  • Rappel = Vrais Positifs / (Vrais Positifs + Faux Négatifs)

Pour visualiser la précision et le rappel d’un certain modèle, nous pouvons créer une courbe précision-rappel . Cette courbe montre le compromis entre précision et rappel pour différents seuils.

Courbe de rappel de précision en Python

L’exemple étape par étape suivant montre comment créer une courbe de rappel de précision pour un modèle de régression logistique en Python.

Étape 1 : Importer des packages

Tout d’abord, nous allons importer les packages nécessaires :

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

Étape 2 : Ajuster le modèle de régression logistique

Ensuite, nous allons créer un ensemble de données et y adapter un modèle de régression logistique :

#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()
classifier.fit(X_train, y_train)

#use logistic regression model to make predictions
y_score = classifier.predict_proba(X_test)[:, 1]

Étape 3 : Créer la courbe précision-rappel

Ensuite, nous allons calculer la précision et le rappel du modèle et créer une courbe précision-rappel :

#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')

#display plot
plt.show()

Courbe de rappel de précision en Python

L’axe des x montre le rappel et l’axe des y montre la précision pour différents seuils.

Notez qu’à mesure que le rappel augmente, la précision diminue.

Cela représente le compromis entre les deux métriques. Pour augmenter le rappel de notre modèle, la précision doit diminuer et vice versa.

Ressources additionnelles

Comment effectuer une régression logistique en Python
Comment créer une matrice de confusion en Python
Comment interpréter une courbe ROC (avec exemples)

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *