Objectif¶
Ce devoir vous guide à travers les tâches classiques d’apprentissage automatique appliquées à votre jeu de données prêt pour l’IA. Vous comparerez des familles de modèles, évaluerez honnêtement leur performance et estimerez leur coût de calcul. Le but est de vous exercer à sélectionner et optimiser un modèle pour votre projet, en préparation d’un développement de modèle plus poussé.
Structure du devoir¶
Pertinence pour le projet de recherche
- Tâche : rédigez un court essai qui discute la pertinence de l’apprentissage automatique pour votre projet et expose votre approche.
- Exigences :
- Un essai concis d’une demi-page (dans
Research_Relevance.md) comprenant :- Le lien du problème avec la classification ou la régression.
- La justification du recours à une approche supervisée, non supervisée, auto-supervisée ou semi-supervisée.
- Les résultats attendus et l’impact potentiel de l’application du ML à votre jeu de données.
- Une déclaration d’usage de l’IA : indiquez quelles parties du code et du texte ont été produites avec l’aide de l’IA, et comment vous les avez vérifiées.
- Un essai concis d’une demi-page (dans
Analyse de partitionnement pour les projets de classification
- Tâche : si votre projet relève de la classification, réalisez une analyse de partitionnement (clustering) sur les caractéristiques de vos données, en particulier après réduction de dimension.
- Exigences :
- Appliquez des algorithmes de partitionnement (p. ex. K-means) pour comprendre les groupes ou les motifs présents dans les caractéristiques.
- Suivez les bonnes pratiques d’analyse de partitionnement dans un carnet (
notebooks/Clustering_Analysis.ipynb) :- Utilisez l’analyse de silhouette et la courbe du coude pour identifier le K optimal.
- Évaluez les groupes avec l’homogénéité ou l’indice de Fowlkes-Mallows.
- Testez la robustesse par des exécutions répétées de K-means avec des graines aléatoires différentes.
- Visualisez les groupes et discutez de la manière dont cette analyse éclaire votre approche de la classification.
Comparaison de modèles et réglage des hyperparamètres
- Tâche : comparez systématiquement des familles de modèles et réglez celles qui sont prometteuses. (Les éditions antérieures exigeaient pycaret ; cet outil est retiré.)
- Exigences :
- Dans un carnet (
notebooks/AutoML_Hyperparameter_Tuning.ipynb) :- Établissez d’abord un modèle de référence trivial (classe majoritaire ou prédiction de la moyenne/climatologie). Chaque modèle est jugé par rapport à lui.
- Comparez au moins quatre familles de classifieurs ou de régresseurs, dont un modèle de gradient boosting (renforcement par gradient :
HistGradientBoosting*de scikit-learn ou LightGBM). - Réglez les meilleurs candidats avec une étude Optuna ou une recherche sur grille enveloppée dans une validation croisée.
- Décrivez les algorithmes évalués et les hyperparamètres optimisés.
- Identifiez les modèles les plus prometteurs en fonction de la performance, de l’interprétabilité et du coût de calcul.
- Dans un carnet (
Ingénierie de l’entraînement et évaluation du modèle
- Tâche : menez une analyse approfondie des stratégies d’entraînement et de l’évaluation du modèle.
- Exigences :
- Dans un carnet (
notebooks/Model_Training_Assessment.ipynb), démontrez :- Un protocole entraînement-validation-test propre : toute la sélection de modèle se fait sur les données d’entraînement/validation ; l’ensemble de test est utilisé une seule fois.
- Un schéma de validation croisée choisi en fonction de la structure de corrélation de vos données, avec justification : si vos échantillons sont corrélés dans le temps ou dans l’espace (c’est le cas de la plupart des données géoscientifiques), utilisez
TimeSeriesSplit, des découpages par blocs ouGroupKFold, et expliquez votre choix ; si vous utilisez une validation croisée à K plis aléatoire, justifiez pourquoi la fuite de données n’est pas à craindre. - La généralité de la performance en testant sur des sous-ensembles variés des données.
- Les techniques de bootstrap (rééchantillonnage avec remise) et de bagging (agrégation de modèles sur échantillons bootstrap) sur différentes architectures de modèles et différentes variations des données.
- Une visualisation de la performance du modèle (p. ex. courbes d’apprentissage, métriques d’erreur) au fil des tours d’entraînement.
- Une discussion des résultats, incluant l’effet de ces méthodes sur la généralité et la performance du modèle.
- Toutes les métriques rapportées doivent provenir de vos propres ensembles de validation et de test tenus à l’écart, jamais des données d’entraînement. L’enseignante conserve des données de test cachées pour les jeux de données du cours et vérifiera par sondage la performance annoncée ; un écart important entre les scores annoncés et les scores vérifiés coûtera des points.
- Dans un carnet (
Analyse du temps de calcul
- Tâche : analysez le temps de calcul nécessaire à l’entraînement et au déploiement du modèle.
- Exigences :
- Dans un carnet (
notebooks/Computational_Time_Analysis.ipynb), incluez :- Des mesures du temps d’entraînement pour chaque architecture de modèle, en détaillant l’effet des différents paramètres sur la vitesse.
- Une exploration des compromis temps/exactitude pour différentes configurations.
- Une estimation du temps attendu pour le déploiement du modèle en conditions réelles.
- Résumez vos constats dans une courte conclusion, en vous concentrant sur les difficultés de calcul ou les optimisations pertinentes pour votre modèle.
- Dans un carnet (
Livrables¶
- Un dépôt GitHub avec la structure suivante :
- data/ - ai_ready/ - notebooks/ - Clustering_Analysis.ipynb - AutoML_Hyperparameter_Tuning.ipynb - Model_Training_Assessment.ipynb - Computational_Time_Analysis.ipynb - Research_Relevance.md - README.md - Mettez à jour le fichier
README.mddu devoir précédent avec une section supplémentaire sur le ML classique, les constats principaux et des instructions claires pour reproduire les analyses en nommant le carnet à exécuter. Ajoutez la version du dépôt dans un fichier texte, au titre du devoir.
Critères de notation¶
- Essai de pertinence (10 %) : clarté de la formulation du problème, adéquation de l’approche ML, explication de l’impact et déclaration d’usage de l’IA.
- Analyse de partitionnement (20 %) (seulement pour un projet de classification) : profondeur de l’analyse de partitionnement, respect des bonnes pratiques d’évaluation et clarté des enseignements.
- Comparaison de modèles et réglage des hyperparamètres (20 %) : modèle de référence établi, éventail de familles de modèles testées (dont le gradient boosting), qualité de l’étude Optuna ou de la recherche sur grille, et clarté du compte rendu.
- Ingénierie de l’entraînement et évaluation du modèle (30 %) : robustesse de la stratégie d’entraînement, choix de validation croisée tenant compte de la corrélation et justifié, usage du bootstrap, et discussion claire des résultats.
- Analyse du temps de calcul (10 %) : analyse approfondie des temps d’entraînement et de déploiement, enseignements sur l’efficacité de calcul.
- Documentation et clarté du code (10 %) : explications claires, lisibilité du code et respect des bonnes pratiques.
Ce devoir applique les méthodes classiques d’apprentissage automatique à des données géoscientifiques réelles, et approfondit votre compréhension pratique de la sélection de modèle, du réglage et de l’évaluation honnête.