Le machine learning en partant de zéro · Projet de portfolio · 40 min
Projet A : dépistage
En bref
Votre premier projet de portfolio : choisir modèle et seuil d’un dépistage où un cas manqué coûte 10 fausses alertes, puis vérifier sur un test caché.
La tâche
Vous construisez un premier tamis : un modèle note une biopsie et décide qui passe à d’autres examens. Une tumeur maligne manquée (FN) coûte autant que 10 fausses alertes (FP).
- Choisissez un modèle (régression logistique, arbre de décision ou kNN) et son unique réglage.
- Choisissez un seuil : à partir de quel score le modèle dit « biopsie ».
- Écrivez une phrase de justification : pourquoi ce modèle et ce seuil.
Vous choisissez tout sur la validation. Le test caché vérifie votre choix à la fin, comme de nouveaux patients vérifient un modèle après le déploiement.
Données et découpage
Breast Cancer Wisconsin (Diagnostic), UCI Machine Learning Repository, licence CC BY 4.0 : 569 biopsies, dont 212 malignes. Le modèle voit les 10 mesures « mean » des noyaux cellulaires de l’image de biopsie (rayon, texture, concavité, etc.). UCI
- Apprentissage : 427 biopsies (159 malignes). Validation croisée en 5 parties : chaque partie sert une fois de validation, le modèle apprend sur les autres. C’est le coût CV.
- Test caché : 142 biopsies (53 malignes), mises de côté une fois, au hasard, en gardant les proportions des classes (graine 1). Le modèle apprend sur les 427 et seulement ensuite note le test.
« Caché » signifie ici « non affiché sur la page », pas verrouillé. Le code de la page est public et chacun peut le lire. Votre navigateur compte les envois, donc effacer les données du site remet la limite à zéro. C’est un exercice de discipline, pas un examen.
Comment réussir
Le coût est compté pour 100 personnes : (10 × cas manqués + fausses alertes) × 100 / nombre de personnes. La validation du projet est automatique, selon deux règles :
- le coût sur le test caché est inférieur à celui des deux règles simples : « tout le monde en biopsie » (62,7 pour 100 personnes sur le test) et « personne en biopsie » (373,2) ;
- seul le premier envoi compte. Vous avez 3 envois, mais les suivants sont « après coup » : ils montrent le coût sur le test sans changer le résultat.
Pourquoi cette règle. L’outil calcule lui-même le coût CV, donc la validation ne peut pas être truquée. Ce qui peut l’être, c’est le test : envoyer, voir le résultat, corriger. C’est pourquoi seul le premier envoi compte.
Sur le test caché (142 biopsies), un seul cas manqué coûte 7,0 pour 100 personnes, donc le résultat du test saute. Avant l’envoi, l’outil affiche la plage habituelle : de CV − 25 à CV + 25. C’est l’écart du test autour du CV pour les solutions d’exemple des leçons sur 200 autres découpages aléatoires (95 % des cas). Exemple : la régression logistique au seuil 0,30 a un CV de 18,7 et un test de 48,6, hors de la plage. C’est la malchance du découpage, pas une erreur, et le choix réussit quand même car il est moins cher que les deux règles.
Les solutions d’exemple réussissent sur au moins 98 % de ces 200 découpages. Pas de classement : vous seul voyez votre résultat.
Votre choix
L’outil fonctionne dans le navigateur avec JavaScript activé. Sans lui, faites le projet dans le notebook ci-dessous.
Carte de réussite
Une fois le projet réussi, vous pouvez télécharger une carte (PNG). Vous tapez votre nom sur cette page, la carte est créée dans votre navigateur, et le nom ne va jamais dans l’adresse de la page ni sur un serveur. « Partager sur LinkedIn » ne transmet que l’adresse de cette page.
Pour qui code : le notebook
Le notebook fait la même chose avec scikit-learn : le même jeu de données, les mêmes 142 lignes du test caché (données par numéro de ligne), une validation croisée en 5 parties, le coût pour 100 personnes, la plage habituelle autour du CV et la règle de réussite. Lancez la cellule du test une seule fois, après votre choix : c’est la première exécution qui compte. L’arbre et kNN peuvent y différer de la page sur quelques cas, car scikit-learn départage les égalités autrement.
Télécharger le notebook (.ipynb)
Modèle de README pour GitHub
Un notebook recopié d’un tutoriel dit peu de choses sur vous. Un README avec vos propres décisions et limites en dit plus. Copiez le modèle et remplissez chaque section avec vos mots.
Afficher le modèle
# Dépistage : un modèle et un seuil selon le coût des erreurs
Projet A du cours ML Atlas : https://mlatlas.org/fr/cours/ml/projet-a/
## Problème
Qui envoyer en biopsie ? Manquer une tumeur maligne coûte autant que 10 fausses alertes. <Avec vos mots : qui utilise le modèle et ce qui se passe après sa décision.>
## Données et licence
Breast Cancer Wisconsin (Diagnostic), UCI Machine Learning Repository, CC BY 4.0, https://doi.org/10.24432/C5DW2B. 569 biopsies, 212 malignes, 10 mesures « mean ».
## Validation
<Comment vous avez découpé les données, combien de parties a la validation croisée, combien de fois vous avez regardé le test caché.>
## Résultat ± dispersion
<Modèle, réglage, seuil. Coût CV pour 100 personnes et sa dispersion entre les parties ; coût sur le test.>
## Référence
<Le coût de « tout le monde en biopsie » et de « personne » sur les mêmes données.>
## Ce que le modèle ne sait pas faire
<Limites : combien de données, d’où elles viennent, ce qui change avec d’autres prix des erreurs.>
## Et ensuite
<Ce que vous vérifieriez ensuite, et pourquoi.>