Construire un modèle de machine learning est en général un processus itératif. À partir d'un jeu de données, tu entraînes un modèle, tu l'évalues, puis tu continues à l'améliorer jusqu'à être satisfait de sa performance.
LA BOUCLE
Chaque amélioration se mesure

Ici, l'efficacité de n'importe quelle stratégie d'amélioration du modèle (par exemple, ajouter une nouvelle feature) se juge avec une métrique de performance.

Ajouter une nouvelle feature a amélioré le modèle, donc la technique était efficace.
LE CONTEXTE
Un modèle peut progresser sans que l'accuracy le montre
Pourtant, j'ai souvent constaté que ce jugement peut être trompeur pour les modèles probabilistes de classification multiclasse, quand la métrique utilisée est l'accuracy.
Les modèles probabilistes de classification multiclasse sont ceux qui renvoient une probabilité pour chaque classe, comme les réseaux de neurones.

En d'autres termes, il est possible que tu progresses vraiment sur ton modèle, mais que l'accuracy ne le reflète pas (encore).
Je t'explique !
LE PIÈGE
L'accuracy ne regarde que le premier label
Dans un modèle probabiliste de classification multiclasse, l'accuracy se calcule à partir du label de sortie qui a la probabilité la plus élevée :

Or il est possible que le vrai label ne soit pas celui prédit avec la plus forte probabilité, tout en figurant parmi les « k » meilleurs labels de sortie.
L'EXEMPLE
Version 1 contre version 2
Par exemple, dans l'image ci-dessous, le vrai label (Classe C) n'est pas celui de plus forte probabilité, mais il fait au moins partie des 2 meilleures probabilités prédites (Classe B et Classe C) :

Imagine maintenant une version précédente du modèle, où la probabilité de Classe C était la plus faible :

Bien sûr, dans les deux cas, la prédiction finale est incorrecte.
Pourtant, en passant de la « version 1 » à la « version 2 » grâce à des techniques d'amélioration du modèle, on a réellement progressé.
Mais l'accuracy passe complètement à côté, car elle ne s'intéresse qu'au label de plus forte probabilité.

J'espère que tu vois le problème.
LA SOLUTION
La top-k accuracy
Quand je construis et que j'améliore un modèle probabiliste de classification multiclasse, j'utilise toujours le top-k accuracy score.
Comme son nom l'indique, il vérifie si le vrai label figure parmi les k labels de plus forte probabilité prédite.
Tu l'as sans doute deviné : le top-1 accuracy score, c'est l'accuracy traditionnelle.
C'est un bien meilleur indicateur pour savoir si mes efforts d'amélioration se traduisent par de vrais gains de performance prédictive.
Par exemple, si le top-3 accuracy passe de 75 % à 90 %, cela montre clairement que ce qu'on a fait pour améliorer le modèle était efficace :
Avant, le vrai label ne figurait parmi les 3 premiers que 75 % du temps.
Maintenant, le vrai label figure parmi les 3 premiers 90 % du temps.
On sait donc dans quelle direction poursuivre ses efforts.
⚠️ Attention : ce que je décris ne doit servir qu'à évaluer les efforts d'amélioration du modèle.
En effet, le vrai pouvoir prédictif se mesure forcément avec l'accuracy traditionnelle.
Assure-toi donc de progresser aussi sur le front de l'accuracy.
Idéalement, la top-k accuracy continue d'augmenter au fil des itérations du modèle, ce qui reflète une amélioration de la performance. L'accuracy, elle, peut rester identique pendant un moment, comme ci-dessous :

EN PRATIQUE
Une fonction prête à l'emploi dans Sklearn
Le top-k accuracy score est aussi disponible dans Sklearn :

Tu lui passes les probabilités prédites (y_score), pas les labels : top_k_accuracy_score(y_true, y_score, k=3). Par défaut, k vaut 2.
N'est-ce pas une excellente façon d'évaluer tes efforts d'amélioration d'un modèle ?
À retenir : suis la top-k accuracy pour savoir si tes améliorations avancent, et garde l'accuracy comme mesure de la vraie performance.
Pour aller plus loin sur l'évaluation de tes modèles, deux autres shots :
💻 Le code de ce shot : notebook top-k accuracy
Envie d'aller plus loin ? DataXp t'attend : formations et parcours pour progresser en data science, machine learning et IA.
👉 Et maintenant, à toi de jouer : à ton avis, quelles autres façons existe-t-il d'évaluer les efforts d'amélioration d'un modèle ?



