Travail à rendre : préparer des données prêtes pour l’IA en vue du projet final¶
Objectif¶
Ce travail porte sur l’organisation, le nettoyage et la préparation de données sous une forme adaptée à l’apprentissage automatique. À l’issue de cette tâche, vous devez disposer d’un dépôt organisé contenant les données brutes, les données nettoyées, les attributs annotés et l’analyse exploratoire qui prépare les données à l’usage dans des modèles d’apprentissage automatique.
Structure du travail¶
Mise en place et documentation du dépôt de projet
- Tâche : créer un dépôt GitHub public pour le projet de groupe.
- Exigences :
- Un fichier
README.mdclair et concis qui explique :- La ou les sources de données.
- Les objectifs du projet. On y décrira la logique du projet.
- Les instructions de mise en place de l’environnement (dépendances, paquets).
- Une description de haut niveau de chaque script ou notebook.
- Structurez votre dépôt selon les recommandations MLGEO.
- Un fichier
Téléchargement des données et organisation des données brutes
- Tâche : télécharger le jeu de données géoscientifiques brut pertinent pour votre projet et discuter des modalités de base.
- Exigences :
- Inclure un script ou un notebook (
scripts/download_data.pyounotebooks/Download_Data.ipynb) qui télécharge et vérifie le jeu de données. - Veiller à ce que les données brutes soient stockées dans un dossier dédié (
data/raw/). - Le cas échéant, documenter dans le
README.mdtoute clé d’API ou tout identifiant d’accès nécessaire à l’obtention des données. - Décrire les modalités des données, leurs formats.
- Le cas échéant, décrire les grandes archives de données utilisables pour l’inférence du modèle, ainsi que leur taille.
- Inclure un script ou un notebook (
Nettoyage et manipulation de base des données
- Tâche : nettoyer les données brutes pour traiter les valeurs manquantes, les valeurs aberrantes ou les incohérences.
- Exigences :
- Écrire un script ou un notebook (
scripts/clean_data.pyounotebooks/Data_Cleaning.ipynb) qui :- Traite les valeurs manquantes (imputation, suppression, par exemple).
- Corrige ou retire les valeurs aberrantes.
- Assure la cohérence des données (format de date uniforme, conversions d’unités, par exemple).
- Enregistre les données nettoyées dans un nouveau dossier (
data/clean/).
- Écrire un script ou un notebook (
Organiser les données au format prêt pour l’IA
- Tâche : préparer les données nettoyées pour l’apprentissage automatique, en veillant à ce qu’elles soient correctement annotées et structurées. Ce point d’étape est noté au regard de la liste de contrôle de la leçon 2.13.
- Exigences :
- Convertir vos données dans un format adapté à l’apprentissage automatique (
DataFramepandas, tableaux NumPy, Xarray, par exemple). - Être très précis et énoncer 1) ce qu’est un échantillon ou une instance de données, 2) ce que sont les données d’entrée (les données brutes ou leurs caractéristiques) et 3) ce que sont les données cibles. Identifier cela tôt fixe des objectifs clairs pour l’analyse. Notez que choisir des « données cibles » signifie probablement que le problème (régression, classification, etc.) est déjà posé.
- Rédiger une fiche de données (
data/ai_ready/data_card.yml), en suivant le modèle de la leçon 2.13 : nom, version, description, provenance (y compris toute donnée synthétique ou augmentée, déclarée), licence, citation, échantillonnage, variables avec unités et types, politique des données manquantes, inventaire des classes et des événements, définitions des découpages. - Livrer les découpages de référence avec les données : stocker l’appartenance aux ensembles d’entraînement, de validation et de test dans une colonne ou un fichier d’indices sous
data/ai_ready/, et justifier la conception du découpage au regard de la structure de corrélation de vos données (temps, espace ou groupement par événement — un découpage aléatoire de données autocorrélées sera pénalisé ; voir la leçon 2.13, section 7). - Veiller à ce que les données soient bien documentées, avec attributs, étiquettes et métadonnées.
- Inclure un notebook (
notebooks/Prepare_AI_Ready_Data.ipynb) qui décrit clairement :- La forme finale des données (nombre d’échantillons, de caractéristiques et d’étiquettes cibles).
- Une description de chaque caractéristique ou attribut par échantillon de données, sa signification physique, ainsi que la dimensionnalité d’origine des données déduite du nombre de caractéristiques.
- Une démonstration que les statistiques de prétraitement (normalisateurs, imputeurs, bases ACP) sont ajustées sur le seul ensemble d’entraînement.
- Enregistrer les données finales prêtes pour l’IA dans un dossier dédié (
data/ai_ready/).
- Convertir vos données dans un format adapté à l’apprentissage automatique (
Analyse exploratoire des données (EDA)
- Tâche : réaliser une exploration de base des données nettoyées pour en comprendre la structure et les caractéristiques principales.
- Exigences :
- Créer un notebook (
notebooks/EDA.ipynb) qui contient :- Les statistiques descriptives de base du jeu de données (moyenne, variance, minimum, maximum, etc.).
- La visualisation des distributions des caractéristiques (histogrammes, boîtes à moustaches, etc.).
- L’analyse des corrélations entre les différentes caractéristiques et les variables cibles (matrice de corrélation, cartes de chaleur).
- Une brève discussion des motifs ou des enseignements observés au cours de l’analyse.
- Créer un notebook (
Discussion et réduction de la dimensionnalité
- Tâche : analyser la dimensionnalité de votre jeu de données et proposer des méthodes pour la réduire.
- Exigences :
- Dans un notebook (
notebooks/Dimensionality_Reduction.ipynb) :- Discuter des dimensions actuelles du jeu de données et des difficultés qu’elles posent (grande dimension, données creuses, par exemple).
- Proposer et mettre en œuvre au moins deux techniques de réduction de dimension :
- Des techniques d’extraction de caractéristiques comme l’ACP (analyse en composantes principales, PCA).
- Une méthode non linéaire : t-SNE (t-Distributed Stochastic Neighbor Embedding), comme enseigné dans la leçon 2.12. UMAP est facultatif — il n’est pas installé dans l’environnement du cours, donc si vous l’utilisez, ajoutez-le à l’environnement propre à votre projet et documentez-le.
- Visualiser les résultats de la réduction de dimension (nuages de points, graphiques de variance expliquée).
- Discuter des implications de la réduction de dimension sur votre jeu de données.
- Dans un notebook (
Livrables¶
- Un dépôt GitHub ayant la structure suivante :
- data/ - raw/ - clean/ - ai_ready/ - scripts/ - download_data.py - clean_data.py - notebooks/ - Download_Data.ipynb - Data_Cleaning.ipynb - Prepare_AI_Ready_Data.ipynb - EDA.ipynb - Dimensionality_Reduction.ipynb - README.md - Veillez à ce que tous les scripts et notebooks soient bien documentés, avec des commentaires expliquant le code.
- Le dossier
data/ai_ready/doit contenir la fiche de données (data_card.yml) et les découpages de référence stockés (liste de contrôle de la leçon 2.13). - Incluez une déclaration d’usage de l’IA dans le
README.md: quels outils d’IA ont été utilisés, pour quoi (code, texte, relecture) et ce qui a été vérifié par un humain. - Rendez un lien vers votre dépôt GitHub comme travail final et marquez la version du dépôt au moment du rendu.
Critères de notation¶
- Organisation du dépôt (10 %) : structure propre avec des répertoires appropriés,
README.mdbien documenté, déclaration d’usage de l’IA présente. - Téléchargement et nettoyage des données (15 %) : fonctionnement du script, traitement des données manquantes et aberrantes, format des données nettoyées.
- Préparation des données prêtes pour l’IA (25 %) : la liste de contrôle de la leçon 2.13 — exhaustivité de la fiche de données (provenance, licence, unités, politique des données manquantes, inventaire des classes et des événements), découpages de référence livrés avec les données et justifiés au regard de la structure de corrélation des données, garde-fous contre les fuites de données, adéquation du format à l’apprentissage automatique.
- Analyse exploratoire des données (20 %) : qualité de l’analyse statistique, des enseignements et des visualisations.
- Réduction de dimension (20 %) : qualité de l’analyse, usage des techniques et discussion des difficultés liées à la dimensionnalité.
- Documentation et clarté du code (10 %) : explications claires et lisibilité du code.
Auto-évaluation exigée : relecture par une IA agentique, et votre critique de cette relecture¶
Ne collez pas l’URL de votre dépôt dans un agent conversationnel en appelant cela une relecture. Faites plutôt ceci :
Lancez une relecture agentique du dépôt. Utilisez un agent capable de lire réellement les fichiers (Claude Code, GitHub Copilot Workspace ou un outil similaire exécuté dans un clone de votre dépôt, par exemple). Demandez-lui de noter le dépôt au regard de la grille de notation complète ci-dessus, section par section, en citant des fichiers et des lignes précis comme preuves, et de vérifier explicitement les points de la liste de contrôle de la leçon 2.13 (champs de la fiche de données, découpages stockés, garde-fous contre les fuites). Conservez le rapport complet de l’agent.
Rédigez une demi-page de critique de l’évaluation de l’IA. Identifiez au moins une erreur concrète, une omission ou une affirmation injustifiée dans le rapport de l’IA — un fichier qu’elle a mal lu, un point de la liste qu’elle a coché à tort, un problème de conception du découpage qu’elle a manqué, ou un crédit accordé à quelque chose qui n’existe pas. Si vous pensez que le rapport est entièrement correct, c’est que vous ne l’avez pas lu assez attentivement : les relectures agentiques de dépôts réels contiennent immanquablement au moins une erreur.
Rendez les deux sur Canvas : le rapport de l’IA et votre critique. C’est la critique qui est notée : elle montre que vous savez superviser une IA relectrice plutôt que vous en remettre à elle.