Le machine learning en partant de zéro · Projet de portfolio · 45 min
Projet B : un tableau propre
En bref
Deuxième projet de portfolio : d’un tableau brut de manchots (trous, catégories), faites un pipeline sans fuite, puis trouvez la fuite chez trois autres.
La tâche
Vous recevez le tableau tel qu’il a été publié : 344 manchots, dont 2 sans aucune mesure et 11 sans sexe renseigné. L’île et le sexe sont des mots, pas des nombres. Le modèle doit reconnaître l’espèce.
- Construisez un pipeline avec des blocs : avec quoi combler les trous, que faire d’un sexe manquant, comment encoder l’île et le sexe, s’il faut mettre à l’échelle et quel modèle. Pour chaque étape qui peut apprendre des lignes, choisissez où elle est ajustée : dans le pipeline ou avant le découpage.
- Écrivez une phrase de justification et envoyez le pipeline au test caché.
- Dans trois pipelines écrits par d’autres, désignez l’étape qui fuit.
Vous vérifiez le pipeline par validation croisée. Le test caché le note une fois, à la fin.
Données et découpage
Palmer Penguins (Gorman, Williams et Fraser 2014 ; paquet palmerpenguins, Horst, Hill et Gorman 2020), licence CC0 1.0 : 344 manchots de trois espèces (Adélie, à jugulaire, papou) venant de trois îles de l’archipel Palmer, en Antarctique. Mesures : longueur et profondeur du bec, longueur de la nageoire, masse corporelle. S’y ajoutent l’île et le sexe. palmerpenguins
- Apprentissage : 258 manchots (Adélie 114, à jugulaire 51, papou 93). Validation croisée en 5 parties : chaque partie sert une fois de validation, et le pipeline apprend sur les autres.
- Test caché : 86 manchots (Adélie 38, à jugulaire 17, papou 31), mis de côté une fois, au hasard, en gardant les proportions d’espèces (graine 1). Le pipeline apprend sur les 258 et seulement ensuite note le test.
- « Avant le découpage » veut dire : une étape ajustée sur tout le tableau, 344 manchots, test caché compris. « Dans le pipeline » veut dire : seulement sur les manchots dont le modèle apprend (dans chaque pli, puis à la fin sur les 258).
« 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
La réussite est automatique, selon trois règles :
- un pipeline sans fuite : chaque étape qui apprend des lignes (la moyenne ou la médiane pour les trous, le sexe le plus fréquent, la moyenne et l’écart du scaler) est dans le pipeline. Une étape qui regarde une ligne à la fois (la constante « inconnu », supprimer une colonne) peut se trouver n’importe où ;
- une exactitude sur le test caché plus élevée que celle des deux règles simples : « toujours l’espèce la plus fréquente » (44,2 % sur le test) et « une question », un arbre de profondeur 1 qui demande si la nageoire mesure au plus 207,5 mm (77,9 %) ;
- seul le premier envoi compte, et seul le premier choix dans chacun des trois pipelines écrits par d’autres : il faut trois fuites sur trois. Vous avez 3 envois, mais les suivants sont « après coup » : ils montrent le résultat du test sans changer la réussite.
Pourquoi la fuite se vérifie dans la structure et non dans le chiffre. Sur les manchots, une telle fuite ne bouge presque pas le score : dans chacun des 2304 pipelines que l’on peut construire ici, déplacer des étapes du pipeline vers l’avant du découpage change l’exactitude CV d’au plus 0,8 point de pourcentage. Le chiffre ne vous préviendra pas, donc le pipeline se juge à sa construction, comme lors d’une revue de code.
L’outil calcule le CV lui-même, 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. Avant l’envoi, l’outil montre la plage habituelle : de CV − 4 à CV + 4 points de pourcentage. C’était l’écart du test autour du CV pour les pipelines d’exemple sur 200 autres découpages aléatoires (95 % des cas). Un manchot sur le test vaut 1,2 point.
Les pipelines d’exemple sans fuite réussissent sur 100 % de ces 200 découpages. Un kNN sans mise à l’échelle ne réussit que sur 35 % : la masse en grammes écrase les autres mesures, donc en CV un tel pipeline (75,7 %) perd même contre « une question » (79,0 %), et la chance du découpage déciderait de sa réussite. Pas de classement : vous seul voyez votre résultat.
Votre pipeline
L’outil fonctionne dans le navigateur avec JavaScript activé. Sans lui, construisez le pipeline dans le notebook ci-dessous.
Trois pipelines écrits par d’autres
Chacun de ces pipelines fait une validation croisée sur les 344 manchots, et dans chacun une étape fuit : trois des huit types de fuite de la leçon sur les fuites de données (Kapoor et Narayanan 2023). Après votre choix, vous voyez le type, la réparation et ce que la fuite change sur les manchots.
La chasse aux fuites fonctionne dans le navigateur avec JavaScript activé.
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 dans scikit-learn : le même jeu de données (le fichier CSV du dépôt seaborn-data, figé sur un commit), les mêmes 86 lignes du test caché (données par leur numéro), les mêmes choix que les blocs de la page, une validation croisée en 5 parties, la vérification des fuites par la structure et la règle de réussite. Lancez la cellule du test une fois, après avoir choisi : c’est la première exécution qui compte. Dans les exemples vérifiés, kNN donne les mêmes chiffres que la page ; un arbre peut différer de quelques manchots, 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
# Un tableau propre : un pipeline sans fuite
Projet B du cours ML Atlas : https://mlatlas.org/fr/cours/ml/projet-b/
## Problème
Reconnaître l’espèce d’un manchot à partir de ses mesures, de son île et de son sexe quand le tableau a des trous et des catégories. <Avec vos mots : pour qui et pour quoi.>
## Données et licence
Palmer Penguins, Gorman, Williams et Fraser (2014), paquet palmerpenguins (Horst, Hill et Gorman 2020), CC0 1.0, https://allisonhorst.github.io/palmerpenguins/. 344 manchots, 2 sans mesures, 11 sans sexe.
## Validation
<Comment vous avez découpé les données, combien de parties a la validation croisée, où chaque étape est ajustée (dans le pipeline ou avant le découpage) et combien de fois vous avez regardé le test caché.>
## Résultat ± écart
<Le pipeline, l’exactitude CV et son écart entre les parties ; l’exactitude sur le test.>
## Référence
<L’exactitude de « toujours l’espèce la plus fréquente » et d’« une question » sur les mêmes données.>
## Ce que le modèle ne sait pas faire
<Limites : trois îles, les années 2007–2009, que faire d’un manchot sans mesures, que faire d’une autre espèce.>
## Suite
<Ce que vous vérifieriez ensuite, et pourquoi.>