Personnaliser les préférences

Nous utilisons des cookies pour vous aider à naviguer efficacement et à exécuter certaines fonctions. Vous trouverez ci-dessous des informations détaillées sur tous les cookies sous chaque catégorie de consentement.

Les cookies classés comme « Nécessaires » sont stockés sur votre navigateur car ils sont essentiels pour activer les fonctionnalités de base du site.... 

Toujours actif

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

Aucun cookie à afficher.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

Aucun cookie à afficher.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

Aucun cookie à afficher.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

Aucun cookie à afficher.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

Aucun cookie à afficher.

Comment tracer plusieurs courbes ROC en Python (avec exemple)



Une façon de visualiser les performances des modèles de classification dans l’apprentissage automatique consiste à créer une courbe ROC , qui signifie courbe « caractéristique de fonctionnement du récepteur ».

Souvent, vous souhaiterez peut-être adapter plusieurs modèles de classification à un seul ensemble de données et créer une courbe ROC pour chaque modèle afin de visualiser quel modèle fonctionne le mieux sur les données.

L’exemple étape par étape suivant montre comment tracer plusieurs courbes ROC en Python.

Étape 1 : Importer les packages nécessaires

Tout d’abord, nous allons importer plusieurs packages nécessaires en Python :

from sklearn import metrics
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.ensemble import GradientBoostingClassifier
import numpy as np
import matplotlib.pyplot as plt

Étape 2 : Créer de fausses données

Ensuite, nous utiliserons la fonction make_classification() de sklearn pour créer un faux ensemble de données avec 1 000 lignes, quatre variables prédictives et une variable de réponse binaire :

#create fake dataset
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)

Étape 3 : Ajuster plusieurs modèles et tracer des courbes ROC

Ensuite, nous ajusterons un modèle de régression logistique, puis un modèle amélioré par gradient aux données et tracerons la courbe ROC pour chaque modèle sur le même tracé :

#set up plotting area
plt.figure(0).clf()

#fit logistic regression model and plot ROC curve
model = LogisticRegression()
model.fit(X_train, y_train)
y_pred = model.predict_proba(X_test)[:, 1]
fpr, tpr, _ = metrics.roc_curve(y_test, y_pred)
auc = round(metrics.roc_auc_score(y_test, y_pred), 4)
plt.plot(fpr,tpr,label="Logistic Regression, AUC="+str(auc))

#fit gradient boosted model and plot ROC curve
model = GradientBoostingClassifier()
model.fit(X_train, y_train)
y_pred = model.predict_proba(X_test)[:, 1]
fpr, tpr, _ = metrics.roc_curve(y_test, y_pred)
auc = round(metrics.roc_auc_score(y_test, y_pred), 4)
plt.plot(fpr,tpr,label="Gradient Boosting, AUC="+str(auc))

#add legend
plt.legend()

tracer plusieurs courbes ROC en Python

La ligne bleue montre la courbe ROC pour le modèle de régression logistique et la ligne orange montre la courbe ROC pour le modèle boosté par gradient.

Plus une courbe ROC épouse le coin supérieur gauche du tracé, plus le modèle parvient à classer les données en catégories.

Pour quantifier cela, nous pouvons calculer l’AUC – aire sous la courbe – qui nous indique quelle partie de la parcelle se trouve sous la courbe.

Plus l’AUC est proche de 1, meilleur est le modèle.

À partir de notre graphique, nous pouvons voir les métriques AUC suivantes pour chaque modèle :

  • AUC du modèle de régression logistique : 0,7902
  • AUC du modèle boosté par gradient : 0,9712

De toute évidence, le modèle amélioré par gradient réussit mieux à classer les données en catégories que le modèle de régression logistique.

Ressources additionnelles

Les didacticiels suivants fournissent des informations supplémentaires sur les modèles de classification et les courbes ROC :

Introduction à la régression logistique
Comment interpréter une courbe ROC (avec exemples)
Qu’est-ce qui est considéré comme un bon score d’ASC ?

Ajouter un commentaire

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