Polydesk-logotype
Polydesk.ai — Header

Accuracy (Précision Globale)

L’accuracy (précision globale, ou taux de bonne classification) est la métrique de classification la plus simple : elle mesure le pourcentage de prédictions correctes sur l’ensemble des exemples, toutes classes confondues.

C’est la première métrique que tout débutant en machine learning apprend, et souvent la seule que les non-spécialistes comprennent. Son interprétation est immédiate : « le modèle a raison 95 % du temps. » Mais cette simplicité cache un piège majeur : sur des datasets déséquilibrés, l’accuracy est trompeuse. Un modèle qui prédit toujours la classe majoritaire obtient une accuracy élevée tout en étant complètement inutile. C’est pourquoi les praticiens expérimentés la complètent systématiquement avec le F1-Score, la précision et le rappel.

Fiche rapide : Accuracy
Nom français
Précision globale (ou taux de bonne classification, exactitude)
Type
Métrique d’évaluation pour la classification
Formule
Accuracy = (TP + TN) / (TP + TN + FP + FN)
Plage
0 à 1 (ou 0 % à 100 %). Plus haut = meilleur.
Forces
Simple, intuitive, universellement comprise
Faiblesse principale
Trompeuse sur les datasets déséquilibrés
Verdict
Bonne métrique de départ pour les classes équilibrées. Insuffisante seule pour les classes déséquilibrées.

La formule

Accuracy = (Prédictions correctes) / (Total des prédictions)
         = (TP + TN) / (TP + TN + FP + FN)

Pour la classification multi-classe, c’est simplement le nombre d’exemples correctement classés divisé par le nombre total d’exemples :

Accuracy = Σᵢ 1(ŷᵢ = yᵢ) / N    # N = nombre total d'exemples

L’accuracy traite toutes les erreurs de la même façon : un faux positif et un faux négatif ont le même impact sur le score. Elle traite aussi toutes les classes de la même façon : une erreur sur la classe rare pèse autant qu’une erreur sur la classe fréquente.

Exemples numériques

Cas équilibré : l’accuracy fonctionne bien

# Classification chat vs chien, 100 images (50 chats, 50 chiens)
# Le modèle classe correctement 45 chats et 43 chiens

TP=45, TN=43, FP=7, FN=5
Accuracy = (45+43)/(45+43+7+5) = 88/100 = 88 %

# Interprétation fiable : le modèle est bon mais pas parfait

Cas déséquilibré : le piège de l’accuracy

# Détection de maladie rare, 10 000 patients (50 malades, 9 950 sains)

# Modèle A : prédit TOUJOURS "sain" (ne détecte aucun malade)
TP=0, TN=9950, FP=0, FN=50
Accuracy = 9950/10000 = 99.5 %   ← excellente accuracy...
F1 = 0 %                         ← ...mais totalement inutile

# Modèle B : détecte 40 malades sur 50, avec 30 fausses alertes
TP=40, TN=9920, FP=30, FN=10
Accuracy = 9960/10000 = 99.6 %   ← accuracy quasi identique à A
F1 = 2·40/(2·40+30+10) = 66.7 %  ← révèle que B est bien meilleur

L’accuracy ne distingue pas un modèle qui ne fait rien (A) d’un modèle qui détecte réellement les cas positifs (B). C’est le défaut fondamental de l’accuracy pour les classes déséquilibrées : les vrais négatifs (qui sont massifs) dominent le calcul et masquent les erreurs sur la classe minoritaire.

Le « accuracy paradox » Un modèle qui prédit toujours la classe majoritaire obtient une accuracy égale à la proportion de la classe majoritaire. Avec 99 % de négatifs, l’accuracy est de 99 %. Ce phénomène est appelé « accuracy paradox » et c’est la raison principale pour laquelle les praticiens expérimentés ne se fient jamais à l’accuracy seule sur des données déséquilibrées.

Quand l’accuracy est-elle fiable ?

Classes équilibrées. Quand chaque classe représente une proportion similaire du dataset (par exemple, 45-55 %), l’accuracy est une métrique fiable et interprétable.

Toutes les erreurs se valent. Quand un faux positif et un faux négatif ont le même coût. Si confondre un chat avec un chien est aussi grave que confondre un chien avec un chat, l’accuracy convient.

Communication avec des non-spécialistes. L’accuracy est la métrique que tout le monde comprend. Même si vous optimisez le F1 en interne, rapporter l’accuracy en plus aide à communiquer les résultats.

Benchmarks standardisés. De nombreux benchmarks de deep learning rapportent l’accuracy : ImageNet (top-1 accuracy), CIFAR-10/100, MNIST. C’est un standard de comparaison largement adopté.

Quand ne pas se fier à l’accuracy

Classes déséquilibrées. Dès qu’une classe représente moins de ~20 % du dataset, l’accuracy devient trompeuse. Utilisez le F1-Score, l’AUC-PR ou le MCC.

Coûts asymétriques des erreurs. En diagnostic médical, un faux négatif (maladie non détectée) est bien plus grave qu’un faux positif (fausse alerte). L’accuracy traite les deux comme identiques. Utilisez le rappel (sensibilité) ou le F2-Score.

Classification multi-label. L’accuracy exacte (exact match ratio) est très stricte : l’ensemble des labels doit être parfaitement prédit. Des métriques par label (F1 par label, Hamming loss) sont plus informatives.

Top-K Accuracy

Pour les problèmes à très nombreuses classes (ImageNet : 1000 classes), la top-1 accuracy peut être sévère. La top-K accuracy vérifie si la bonne classe figure parmi les K classes les plus probables selon le modèle.

# Top-1 : la prédiction la plus probable est-elle correcte ?
# Top-5 : la bonne classe figure-t-elle dans les 5 plus probables ?

# Sur ImageNet, les meilleurs modèles atteignent :
# Top-1 accuracy : ~90-92 %
# Top-5 accuracy : ~98-99 %

La top-5 accuracy est standard pour ImageNet car les 1000 classes contiennent des catégories très proches (20 races de chiens différentes). Confondre un labrador avec un golden retriever est une erreur top-1, mais pas une erreur top-5.

Accuracy vs autres métriques

Métrique Ce qu’elle mesure Quand l’utiliser
Accuracy % de prédictions correctes (toutes classes) Classes équilibrées, benchmarks standards
Précision % de vrais positifs parmi les prédictions positives Quand les faux positifs sont coûteux
Rappel % de vrais positifs parmi les réels positifs Quand les faux négatifs sont coûteux
F1-Score Moyenne harmonique de précision et rappel Classes déséquilibrées, équilibre FP/FN
AUC-ROC Performance sur tous les seuils de classification Évaluation indépendante du seuil
MCC Corrélation entre prédictions et réalité (utilise TP, TN, FP, FN) Mesure la plus équilibrée pour le binaire

Implémentation en Python

from sklearn.metrics import accuracy_score, classification_report
import torch

# Scikit-learn
y_true = [0, 1, 1, 0, 1, 0, 1, 1, 0, 0]
y_pred = [0, 1, 0, 0, 1, 0, 1, 1, 1, 0]

acc = accuracy_score(y_true, y_pred)
print(f"Accuracy : {acc:.2%}")   # 80.00%

# Rapport complet (accuracy + précision/rappel/F1 par classe)
print(classification_report(y_true, y_pred, target_names=['Négatif', 'Positif']))

# PyTorch (pendant l'entraînement)
def compute_accuracy(logits, labels):
    preds = torch.argmax(logits, dim=1)
    return (preds == labels).float().mean().item()

# Keras (dans model.compile)
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

Accuracy et entraînement

Accuracy n’est PAS une loss function L’accuracy n’est pas différentiable (elle vaut 0 ou 1 pour chaque exemple), donc elle ne peut pas être utilisée comme loss function pour la rétropropagation. On entraîne toujours avec une loss différentiable (typiquement la cross-entropy) et on évalue avec l’accuracy (et d’autres métriques). Minimiser la cross-entropy tend à maximiser l’accuracy, mais ce n’est pas garanti : le seuil de classification optimal pour l’accuracy peut différer du seuil par défaut de 0.5.

Pendant l’entraînement, surveillez l’accuracy sur le jeu de validation. Si l’accuracy d’entraînement augmente mais celle de validation stagne ou diminue, c’est un signe d’overfitting. L’écart entre les deux est un indicateur de la capacité de généralisation du modèle.

Accuracy en vision par ordinateur

En classification d’images, l’accuracy (surtout top-1 et top-5) reste la métrique de référence pour les benchmarks :

ImageNet : les meilleurs modèles (ViT, ConvNeXt, SwinV2) atteignent 90-92 % en top-1. La progression historique : AlexNet (2012) ≈ 63 %, ResNet-50 (2015) ≈ 76 %, EfficientNet-V2 (2021) ≈ 87 %, modèles actuels ≈ 90-92 %.

CIFAR-10 : les meilleurs modèles dépassent 99 % d’accuracy. Ce benchmark est considéré comme « résolu ».

CIFAR-100 : plus difficile (100 classes, 500 images par classe). Les meilleurs modèles atteignent ~93-95 %.

MNIST : > 99.8 % d’accuracy. Le benchmark le plus ancien et le plus facile de la vision par ordinateur.

Bonnes pratiques

1. Ne rapportez jamais l’accuracy seule. Accompagnez-la toujours du F1-Score (ou au minimum de la précision et du rappel) pour donner une image complète des performances.

2. Vérifiez la distribution des classes. Avant d’interpréter une accuracy, regardez la répartition des classes. Si une classe représente 95 % des données, une accuracy de 95 % ne signifie rien.

3. Comparez à la baseline « majorité ». L’accuracy minimale utile est celle d’un modèle qui prédit toujours la classe majoritaire. Si votre modèle ne fait pas significativement mieux, il n’apprend rien.

4. Utilisez la top-K accuracy pour les problèmes à nombreuses classes. Top-5 sur ImageNet, top-3 pour les systèmes de recommandation. C’est plus informatif que la top-1 quand les classes proches sont acceptables.

5. Considérez le balanced accuracy pour les classes déséquilibrées. La balanced accuracy est la moyenne des rappels par classe : balanced_accuracy = (rappel_classe_0 + rappel_classe_1) / 2. Elle traite chaque classe avec le même poids, quelle que soit sa taille. Disponible via sklearn.metrics.balanced_accuracy_score().


Questions fréquentes sur l’accuracy

Quelle est la différence entre accuracy et précision (precision) ?

En français, le mot « précision » est ambigu car il traduit deux concepts différents. L’accuracy (précision globale) mesure le pourcentage total de prédictions correctes, toutes classes confondues. La precision (précision positive) mesure le pourcentage de vrais positifs parmi les prédictions positives du modèle. En anglais, les termes « accuracy » et « precision » sont distincts. En français, utilisez « précision globale » pour accuracy et « précision » (ou « valeur prédictive positive ») pour precision afin d’éviter toute confusion.

Pourquoi l’accuracy ne suffit-elle pas pour les classes déséquilibrées ?

Parce que l’accuracy est dominée par la classe majoritaire. Si 99 % des exemples sont négatifs, un modèle qui prédit toujours « négatif » obtient 99 % d’accuracy sans avoir appris quoi que ce soit. Les vrais négatifs (TN), massifs, « noient » les erreurs sur la classe minoritaire. Pour les datasets déséquilibrés, utilisez le F1-Score (qui ignore les TN), la balanced accuracy (qui pondère les classes également), ou l’AUC-PR.

L’accuracy peut-elle servir de loss function pour l’entraînement ?

Non. L’accuracy n’est pas différentiable : c’est une fonction par paliers (0 ou 1 pour chaque exemple), et sa dérivée est zéro presque partout. La rétropropagation ne peut pas l’utiliser pour ajuster les poids. On entraîne avec la cross-entropy (différentiable, produit des gradients informatifs) et on évalue avec l’accuracy. Minimiser la cross-entropy tend à maximiser l’accuracy, mais les deux ne sont pas strictement équivalentes.

Que signifie « top-5 accuracy » ?

La top-5 accuracy vérifie si la classe correcte figure parmi les 5 classes les plus probables selon le modèle. Sur ImageNet (1000 classes avec des catégories très proches), la top-5 accuracy est le standard. Un modèle avec 90 % de top-1 accuracy et 99 % de top-5 accuracy se trompe rarement « complètement » : quand il n’identifie pas la classe exacte, la bonne réponse est presque toujours dans ses 5 premiers choix.

Quelle accuracy est considérée comme « bonne » ?

Cela dépend entièrement du problème. Sur MNIST (chiffres manuscrits), 99 % est le minimum attendu. Sur ImageNet (1000 classes d’images), 90 % est état de l’art. Sur un problème de diagnostic médical avec 2 % de cas positifs, 98 % peut être la baseline triviale (prédire toujours négatif). Comparez toujours à la baseline du problème (majorité, modèle simple) et aux résultats publiés sur le même benchmark. L’accuracy brute sans contexte ne signifie rien.

Polydesk.ai — Footer