Reconnaître un dressage efficace

Cet article est issu de la newsletter IA Comprise et reproduit ici par commodité. Recevez toutes les lettres dans votre boîte mail au fur et à mesure de leur publication en laissant votre adresse dans le cadre à droite !


Chère lectrice, cher lecteur,

L’apprentissage supervisé, ce n’est finalement pas autre chose que du dressage d’ordinateur.

Prenez un algorithme de classification. On commence d’abord par l’entraîner en lui « expliquant » ce qu’il faut retenir. Par exemple, dans un contexte médical : là, cette photo, ce sont des cellules saines. Et celle-ci, ce sont des cellules cancéreuses.

On recommence avec cent, mille, des dizaines de milliers de photos… jusqu’au moment fatidique : face à une nouvelle photo inconnue, saines ou pas saines ?

Saurez-vous reconnaître les cellules de vessie saines (à gauche) et cancéreuses (à droite) ? [1]

Votre ordinateur est-il bien dressé ?

Un dressage n’est jamais parfait. Même l’humain qui entraîne n’est pas parfait – après tout, une des raisons de faire appel à un ordinateur est d’atteindre une performance supérieure.

Comment évalue-t-on cette performance au juste, comment sait-on si le choix de l’algorithme, des données, des paramètres, bref, l’ensemble du dressage a été efficace ?

La réponse peut paraître triviale. Après tout, intuitivement, il devrait suffire d’évaluer le pourcentage de classifications correctes : plus il s’approche de 100%, plus le modèle devrait être performant ? Mais le diable se cache dans les détails. Et ce diable-là est sacrément trompeur.

Quand la justesse est injuste

Le terme consacré pour désigner le pourcentage de prédictions correctes est la justesse (accuracy en anglais).

Imaginons que l’on cherche à détecter les cas de cancer de la vessie dans l’ensemble de la population. La société Filoutest vous propose un algorithme capable d’identifier correctement si les images de cellules de vessie sont cancéreuses ou non avec une justesse de plus de 99,5%.

Ce résultat paraît priori plutôt impressionnant… jusqu’à ce que vous réalisiez que tout ce que fait l’algorithme, c’est de prédire systématiquement que la personne est saine. Vu que ce cancer touche environ 0,2% de la population chaque année [2], il est effectivement juste 99,8% du temps, soit plus de 99,5%…

Un rappel précis

Bien souvent, les cas sont loin de se répartir équitablement entre les différentes catégories – on parle de distribution déséquilibrée. Et on accorde une importance plus grande à la capacité de détecter les cas rares.

Dans un cas réel, la justesse n’a alors en réalité pas beaucoup d’importance. Ce qui compte vraiment pour vous, c’est :

  • Est-ce que l’algorithme a pu me « rater » si j’étais porteur de cellules cancéreuses ?
  • Au contraire, est-ce que je dois stresser si l’algorithme me dit que je porte des cellules cancéreuses ?

Pour répondre à la première question, on utilise le rappel (recall en anglais) : la proportion de cas « positifs » (cancéreux) effectivement détectés sur l’ensemble des cas positifs dans la population.

Pour la seconde question, la précision (precision en anglais, à ne surtout pas confondre avec accuracy donc !) : la proportion de cas réellement positifs parmi tous ceux que l’algorithme affirme positifs.

Trouver le bon équilibre

Il n’existe malheureusement pas d’indicateur universel idéal. Tout dépend de ce qui compte vraiment : tout comme on ne dresse pas un chien d’aveugle comme un chien policier, on ne dressera pas de la même façon un algorithme visant à détecter une tumeur (pour laquelle on préfère détecter trop que pas assez, quitte à raffiner ensuite avec d’autres tests) et un algorithme visant à reconnaître un criminel à partir de photos (pour lequel on préfère éviter de « reconnaître » un innocent).

Mais rares sont les situations où l’on peut réellement limiter le problème à une seule question. Même pour un test médical, on peut vouloir sacrifier un peu de rappel (= rater quelques cas positifs) si cela améliore massivement la précision (= confirmer que la plupart des cas détectés sont effectivement positifs).

Alors, comment choisir ?

La première solution consiste à utiliser un indicateur composite. Une métrique fréquemment utilisée est le f1 score, ratio entre le produit (rappel x précision) et la moyenne entre rappel et précision [3]. Sans être parfait, un f1 score proche de 1 montre à la fois une bonne performance et un bon équilibre entre précision et rappel.

À titre personnel, je préfère lorsque cela est possible une autre approche plus terre à terre, qui consiste à associer à chaque cas une valeur reflétant ses bénéfices et ses coûts.

Étude de cas

Admettons que vous travaillez pour une ONG qui fonctionne grâce à des dons. Vous avez un fichier de 10 000 adresses postales vers lesquelles vous pouvez envoyer des lettres d’appel aux dons, parmi lesquelles 2% des habitants sont susceptibles de vous envoyer un don.

Comme envoyer une lettre a un coût (impression, timbre…), vous souhaitez cibler les personnes les plus susceptibles d’être réactives – chose tout à fait faisable à l’aide d’un algorithme entraîné à partir de données telles que leur historique de dons ou leur code postal.

Outre envoyer une lettre à tout le fichier d’adresse (ce qui vous garantit de toucher les 200 donneurs potentiels), vous disposez d’un modèle qui vous permet de cibler 50% du fichier (5000 envois) en « ratant » 20 donneurs potentiels et un autre qui permet de cibler 10% du fichier (1000 envois) en « ratant » cette fois 80 donneurs.

Comment déterminer le meilleur choix ?

Il s’agit typiquement d’une situation où un équilibre est nécessaire entre rappel (pour ne pas rater de donneur potentiel) et précision (pour ne pas envoyer inutilement de lettres).

Si le don moyen est de 100 euros et le coût d’envoi de 1 euro, vous pouvez associer un score aux différents cas :

  • 99 euros (100 euros de dons moins 1 euro de frais d’envoi) lorsque l’algorithme est capable d’identifier correctement un donneur potentiel
  • -1 euro de frais d’envoi lorsque l’algorithme retient par erreur un non-donneur
  • 0 lorsque l’algorithme recommande de ne pas envoyer de lettre (par erreur ou non)

En additionnant les score de chaque cas, vous obtenez le score total de chaque modèle – score qui n’est autre ici que le revenu total généré par la campagne et qui est très probablement ce que vous voulez optimiser.

Comparaison des trois modèles

Alors que l’optimisation du rappel aurait sélectionné le premier modèle (qui parvient forcément à retenir tous les donneurs) et l’optimisation du f1 score le troisième (qui présente un bon équilibre entre rappel et précision, alors que le rappel est beaucoup plus important ici que la précision), c’est bien le second modèle qui offre la meilleure performance par rapport à votre objectif.

Cette méthode ne s’applique bien sûr pas exclusivement aux problèmes d’ordre financier, ni d’ailleurs aux classifications binaires. Il est possible d’utiliser des scores qualitatifs pour chaque paire de classification réelle/prédite.

Reste à décider quel « score » accorder à chaque type d’erreur dans la reconnaissance d’images médicales… ou à demander celles qui ont été retenues par Filoutest, histoire qu’elle ne vous fasse pas prendre des vessies (cancéreuses ou non) pour des lanternes !

À la prochaine,

Erwan


[1] https://www.pnas.org/content/115/51/12920
[2] https://www.e-cancer.fr/Expertises-et-publications/Catalogue-des-publications/Synthese-Estimations-nationales-de-l-incidence-et-de-la-mortalite-par-cancer-en-France-metropolitaine-entre-1990-et-20182
[3] Ou la moyenne harmonique en termes mathématiques

Inscrivez-vous gratuitement pour ne rater aucune lettre !

Cet article a 2 commentaires

  1. Damien Sonnerat

    Bonjour,

    Merci pour ce partage et l’exemple associé qui est très intéressant. Ce que cela montre, c’est que la fonction qui permet de mesurer l’efficacité du modèle prédictif doit être alignée avec l’objectif métier. Dans l’exemple mentionné, ni le rappel, ni la précision, ni le F1 score (toutes des mesures standard pour ce type de problème) ne correspondent exactement à la cible métier. Seule la métrique construite sur mesure correspond à la cible métier (optimisation de gain financier) et permet d’obtenir l’optimum. Un autre point auquel il faut aussi faire attention : Les données utilisées pour faire les mesures de justesse doivent être représentatives de celles qui seront présentes en production (même distribution …). Sans quoi on n’a aucune assurance que le modèle sera aussi bon en production que lors de son évaluation.

    Bien à vous,

    Damien.

  2. Erwan

    Merci pour cette remarque très juste (!) concernant la représentativité des données. Mon premier exemple est quelque peu simplifié de ce point de vue, en réalité on ne testera sûrement pas la population au hasard mais plutôt les personnes suspectes ou « à risque » (et dans ce cas la baseline « toujours négatif » n’atteindrait certainement pas 99,8% de justesse !)

Laisser un commentaire

Abonnez-moi à la newsletter