Partie 5 · Voir
Évaluer pour la clinique
Tu as plusieurs modèles de dépistage possibles (ton CNN, ResNet-18 en extraction, en fine-tuning). Sont-ils bons ? Rappel de J1 : répondre toujours « pneumonie » donne déjà 62,5 % de bonnes réponses sur le test (390 sur 624). Voici un deuxième défaut de l'accuracy : elle met toutes les erreurs dans le même sac.
Imagine l'usage : le modèle trie les radiographies, celles qu'il signale sont revues par un médecin, les autres non. Deux erreurs sont possibles. Manquer une pneumonie : l'enfant rentre chez lui, sans traitement. Donner une fausse alarme : un médecin regarde la radio et rassure la famille. Elles n'ont pas le même prix, mais chacune retire 1 / 624 à l'accuracy de test.
Pour calculer à la main, prenons huit radiographies de test avec la probabilité de pneumonie d'un modèle (exemple construit pour la séance, pas des sorties réelles). Le modèle donne une probabilité ; pour décider, on fixe un seuil : « pneumonie » si elle vaut au moins 0,5.
| Radio | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
|---|---|---|---|---|---|---|---|---|
| Vraie réponse | P | P | P | P | P | N | N | N |
| Probabilité | 0,90 | 0,80 | 0,65 | 0,55 | 0,35 | 0,60 | 0,40 | 0,10 |
| Seuil 0,5 | oui | oui | oui | oui | manquée | fausse alarme | oui | oui |
P = pneumonie, N = normale. 5 pneumonies sur 8 (62,5 %, comme le test) ; 6 bonnes réponses sur 8 : 75 %.
À toi de coder
Les trois cases à connaître, puis deux taux
Au seuil 0,5 : 4 vrais positifs (VP, pneumonies détectées), 1 faux négatif (FN, pneumonie manquée), 1 faux positif (FP, fausse alarme), 2 vrais négatifs (VN, enfants sains rassurés). Piège fréquent : « faux négatif » ne veut pas dire « enfant sain » ; c'est un enfant malade que le modèle a déclaré négatif, donc à tort. Accuracy : (4 + 2) / 8 = 75 %.
Deux taux, un par type d'erreur, que chacun se lit sur une seule ligne de la matrice :
- Sensibilité = VP / (VP + FN) = 4 / 5 = 80 % : parmi les enfants malades, la part détectée (aussi appelée rappel, recall).
- Spécificité = VN / (VN + FP) = 2 / 3 ≈ 67 % : parmi les enfants sains, la part rassurée à juste titre.
« Toujours pneumonie » sur ces 8 radios : sensibilité 5 / 5 = 100 %, spécificité 0 / 3 = 0 %. Son accuracy de 62,5 % cachait tout.
Le seuil 0,5 n'a rien d'obligatoire
À 0,3 : 5 détectées, 0 manquée, 2 fausses alarmes, 1 rassurée : sensibilité 5 / 5 = 100 %, spécificité 1 / 3 ≈ 33 %. L'accuracy reste 6 / 8 = 75 % : même accuracy, autres erreurs. Baisser le seuil, c'est moins de pneumonies manquées et plus de fausses alarmes ; le monter fait l'inverse. Le modèle n'a pas changé (mêmes huit probabilités) : on ne réentraîne rien, le seuil s'applique après coup.
À toi de coder
Choisir le seuil selon le prix des erreurs
Hypothèse posée clairement : une pneumonie manquée coûte 10 fois plus qu'une fausse alarme. Coût = 10 × pneumonies manquées + fausses alarmes ; on garde le seuil le moins coûteux.
| Seuil | Manquées | Fausses alarmes | Coût |
|---|---|---|---|
| 0,7 | 3 | 0 | 10 × 3 + 0 = 30 |
| 0,5 | 1 | 1 | 10 × 1 + 1 = 11 |
| 0,3 | 0 | 2 | 10 × 0 + 2 = 2 |
On garde 0,3. Le rapport 10 pour 1 est une décision médicale, pas informatique : avec 1 pour 1, les coûts seraient 3, 2 et 2 (0,5 et 0,3 à égalité) ; si une fausse alarme coûtait plus cher qu'une pneumonie manquée, on monterait le seuil. Et le seuil est un réglage : on le choisit sur la validation (les 524 radiographies, tous les seuils de 0,01 en 0,01 dans le notebook), puis on mesure sensibilité et spécificité sur le test (624 radiographies), une seule fois. Choisi sur le test, il donnerait des taux trop optimistes, comme l'examen passé 30 fois.
À toi de coder
Quand le modèle donne l'alarme, a-t-il raison ?
Troisième taux, vu du côté de la famille qui reçoit une alarme : la précision = VP / (VP + FP), la part de vraies pneumonies parmi les alarmes (en médecine : la valeur prédictive positive). Seuil 0,5 : 5 alarmes (radios 1, 2, 3, 4 et 6), 4 justes : 80 %. Seuil 0,3 : 7 alarmes, 5 justes : 5 / 7 ≈ 71 %. Baisser le seuil donne plus d'alarmes, et une plus grande part de fausses.
Ne la confonds pas avec la sensibilité : même numérateur (VP), mais la sensibilité part des malades (sur 5 malades, combien détectés ?), la précision part des alarmes. Et la précision dépend de la proportion de malades parmi les enfants testés. Même test, sensibilité et spécificité de 90 % : sur 1 000 enfants dont 10 malades, 9 détectés et 99 fausses alarmes, précision 9 / 108 ≈ 8 % ; sur les 624 radios de test, dont 390 pneumonies, 351 détectées et environ 23 fausses alarmes, précision 351 / 374 ≈ 94 %. Notre jeu de données compte beaucoup de malades : en dépistage dans la population générale, la précision serait bien plus basse.
Dernier réflexe : regarder les erreurs une par une. On affiche les pneumonies manquées et les fausses alarmes (images floues ? mal cadrées ? un appareil sur le thorax ?). Rappel de J1 : en 2018, un réseau reconnaissait l'hôpital d'origine d'une radiographie avec 99,95 % de réussite pour l'un d'eux, notamment grâce à un jeton métallique posé par les manipulateurs ; comme la proportion de pneumonies variait d'un hôpital à l'autre, reconnaître l'hôpital aidait à deviner la maladie (Zech et al., 2018). Un modèle peut avoir une bonne accuracy pour de mauvaises raisons ; les cartes de chaleur (Grad-CAM) colorent les zones qui pèsent dans la décision, une piste du projet de J5.
À toi de coder