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 interpréter le rapport de classification dans sklearn (avec exemple)



Lorsque nous utilisons des modèles de classification dans l’apprentissage automatique, nous utilisons trois métriques courantes pour évaluer la qualité du modèle :

1. Précision : Pourcentage de prédictions positives correctes par rapport au total des prédictions positives.

2. Rappel : Pourcentage de prédictions positives correctes par rapport au total des positifs réels.

3. F1 Score : Une moyenne harmonique pondérée de précision et de rappel. Plus le modèle est proche de 1, meilleur est le modèle.

  • Score F1 : 2* (Précision * Rappel) / (Précision + Rappel)

En utilisant ces trois mesures, nous pouvons comprendre dans quelle mesure un modèle de classification donné est capable de prédire les résultats pour certaines variables de réponse .

Heureusement, lors de l’ajustement d’un modèle de classification en Python, nous pouvons utiliser la fonction classification_report() de la bibliothèque sklearn pour générer ces trois métriques.

L’exemple suivant montre comment utiliser cette fonction dans la pratique.

Exemple : Comment utiliser le rapport de classification dans sklearn

Pour cet exemple, nous adapterons un modèle de régression logistique qui utilise des points et des aides pour prédire si 1 000 joueurs de basket-ball universitaires différents seront recrutés ou non dans la NBA.

Tout d’abord, nous allons importer les packages nécessaires pour effectuer une régression logistique en Python :

import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_report

Ensuite, nous allons créer le bloc de données contenant les informations sur 1 000 joueurs de basket-ball :

#make this example reproducible
np.random.seed(1)

#create DataFrame
df = pd.DataFrame({'points': np.random.randint(30, size=1000),
                   'assists': np.random.randint(12, size=1000),
                   'drafted': np.random.randint(2, size=1000)})

#view DataFrame
df.head()

	points	assists	drafted
0	5	1	1
1	11	8	0
2	12	4	1
3	8	7	0
4	9	0	0

Remarque : Une valeur de 0 indique qu’un joueur n’a pas été repêché tandis qu’une valeur de 1 indique qu’un joueur a été repêché.

Ensuite, nous diviserons nos données en un ensemble d’entraînement et un ensemble de tests et ajusterons le modèle de régression logistique :

#define the predictor variables and the response variable
X = df[['points', 'assists']]
y = df['drafted']

#split the dataset into training (70%) and testing (30%) sets
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.3,random_state=0)  

#instantiate the model
logistic_regression = LogisticRegression()

#fit the model using the training data
logistic_regression.fit(X_train,y_train)

#use model to make predictions on test data
y_pred = logistic_regression.predict(X_test)

Enfin, nous utiliserons la fonction classification_report() pour imprimer les métriques de classification de notre modèle :

#print classification report for model
print(classification_report(y_test, y_pred))

              precision    recall  f1-score   support

           0       0.51      0.58      0.54       160
           1       0.43      0.36      0.40       140

    accuracy                           0.48       300
   macro avg       0.47      0.47      0.47       300
weighted avg       0.47      0.48      0.47       300

Voici comment interpréter le résultat :

Précision : sur tous les joueurs dont le modèle prévoyait qu’ils seraient repêchés, seuls 43 % l’ont effectivement été.

Rappel : parmi tous les joueurs réellement repêchés, le modèle n’a prédit correctement ce résultat que pour 36 % d’entre eux.

Score F1 : Cette valeur est calculée comme suit :

  • Score F1 : 2* (Précision * Rappel) / (Précision + Rappel)
  • Score F1 : 2 * (.43 * .36) / (.43 + .36)
  • Note F1 : 0,40 .

Puisque cette valeur n’est pas très proche de 1, cela nous indique que le modèle prédit mal si les joueurs seront repêchés ou non.

Support : Ces valeurs nous indiquent simplement combien de joueurs appartenaient à chaque classe dans l’ensemble de données de test. Nous pouvons voir que parmi les joueurs de l’ensemble de données de test, 160 n’ont pas été repêchés et 140 l’ont été.

Remarque : Vous pouvez trouver la documentation complète de la fonction classification_report() ici .

Ressources additionnelles

Les didacticiels suivants fournissent des informations supplémentaires sur l’utilisation des modèles de classification en Python :

Comment effectuer une régression logistique en Python
Comment créer une matrice de confusion en Python
Comment calculer la précision équilibrée en Python

Ajouter un commentaire

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