Skip to content

Data Science et Machine Learning

(DAT)

  • Coefficient : 3
  • Volume Horaire: 72.0h estimées de travail (dont 42.0h EdT)
    Labo : 42h encadrées
    Travail personnel hors EdT : 30h
  • Dont projet : 21h encadrées et 7h projet personnel

Liste des AATs

Description

Ce cours prolonge le cours d'Analyse de données du semestre 7 en passant d'une approche inférentielle (modéliser pour comprendre, estimer des paramètres et tester des hypothèses) à une approche prédictive et algorithmique (apprendre à partir des données pour généraliser sur des observations nouvelles). Le cours couvre l'apprentissage supervisé selon deux niveaux d'outillage complémentaires : le machine learning classique avec scikit-learn (pipeline complet de prétraitement, régression linéaire et logistique sous l'angle prédictif avec régularisation Ridge et Lasso, k-plus-proches-voisins, arbres de décision, forêts aléatoires) et le deep learning avec PyTorch (réseaux de neurones denses traités en profondeur : mécanisme de rétropropagation, algorithmes d'optimisation, fonctions d'activation, initialisation des poids, techniques de régularisation, diagnostic de l'entraînement). La comparaison systématique entre modèles classiques et réseaux de neurones sur des problématiques identiques permet aux étudiants de développer un jugement éclairé sur le choix de la méthode.

Acquis d'Apprentissage visés (AAv)

  • AAv1 [heures: 12, C1, B2, B3] : concevoir et mettre en œuvre un pipeline complet de machine learning supervisé avec scikit-learn

    • Déterminer l'architecture d'un pipeline de machine learning en identifiant ses blocs fonctionnels (exploration, prétraitement, séparation train/validation/test, modèle, évaluation) et leur articulation
    • Mettre en œuvre les techniques d'exploration et de visualisation des données pour comprendre un jeu de données avant modélisation, et appliquer les prétraitements adaptés (nettoyage, gestion des valeurs manquantes, encodage des variables catégorielles, normalisation, standardisation) en argumentant leur impact par des comparaisons de performances
    • Mettre en œuvre les modèles supervisés classiques sous l'angle prédictif : régression linéaire et régression logistique avec régularisation (Ridge, Lasso), k-plus-proches-voisins, arbres de décision, forêts aléatoires
    • Adapter un modèle à un contexte donné par l'ajustement de ses hyperparamètres (recherche sur grille, validation croisée) et argumenter la configuration retenue
    • Implémenter le pipeline en Python avec pandas et scikit-learn, en s'appuyant sur les abstractions de la bibliothèque (Pipeline, ColumnTransformer, GridSearchCV)
  • AAv2 [heures: 14, B2, B3, C1] : concevoir, entraîner et maîtriser en profondeur un réseau de neurones dense avec PyTorch

    • Identifier les modèles mathématiques sous-jacents à un réseau de neurones dense : composition de transformations affines et de fonctions d'activation non linéaires, fonction de perte adaptée à la tâche (entropie croisée pour la classification, erreur quadratique pour la régression)
    • Mettre en œuvre les techniques de calcul numérique fondamentales à l'entraînement : descente de gradient stochastique, rétropropagation (calcul analytique des gradients par couche, puis utilisation de l'autograd PyTorch), algorithmes d'optimisation (SGD avec momentum, Adam) et stratégies d'ajustement du taux d'apprentissage
    • Maîtriser les choix structurels d'un réseau dense : nombre et taille des couches, fonctions d'activation (ReLU, sigmoïde, tanh, softmax), initialisation des poids (Xavier, He) et son rôle critique sur la convergence
    • Mettre en œuvre les techniques de régularisation et comprendre leurs interactions : dropout, batch normalization, weight decay, early stopping
    • Implémenter et entraîner un réseau de neurones en PyTorch : définition d'un module nn.Module, gestion du DataLoader, boucle d'entraînement avec suivi des métriques, sauvegarde et chargement de modèle
    • Articuler ML classique et deep learning sur une problématique commune (par exemple comparaison d'un MLP et d'une forêt aléatoire sur données tabulaires) afin de développer un jugement argumenté sur le choix de la méthode en fonction de la taille du jeu de données, de la nature des features et des contraintes de la tâche
  • AAv3 [heures: 16, D3, D4, B3, C1] : évaluer rigoureusement les performances d'un modèle, diagnostiquer les sources d'erreur, et mener à bien un projet personnel d'apprentissage supervisé de bout en bout

    • Valider les performances d'un modèle par la mise en œuvre d'un protocole de tests préalablement défini : séparation train/validation/test, validation croisée k-fold, validation croisée stratifiée pour les classes déséquilibrées
    • Choisir des métriques adaptées à la tâche et à la nature des données : RMSE, MAE et R² pour la régression ; accuracy, précision, rappel, F1-score, AUC-ROC et matrice de confusion pour la classification
    • Suivre l'évolution de l'entraînement d'un réseau de neurones par les courbes de perte et de métrique sur les ensembles d'apprentissage et de validation, et diagnostiquer les phénomènes classiques (sous-apprentissage, sur-apprentissage, instabilité de l'entraînement, gradients qui explosent ou s'annulent, neurones morts avec ReLU)
    • Identifier les causes de dysfonctionnement (taux d'apprentissage inadapté, initialisation incorrecte, régularisation insuffisante ou excessive, fuite de données entre train et test, déséquilibre de classes, métrique inadaptée au problème métier) et apporter des solutions appropriées
    • Mener à bien un projet personnel d'apprentissage supervisé : choisir un jeu de données et formuler une problématique pertinente (régression ou classification), choisir l'approche adaptée (ML classique avec scikit-learn, deep learning avec PyTorch, ou comparaison des deux), conduire le projet de l'exploration des données à l'évaluation finale, comparer plusieurs modèles ou configurations et argumenter le choix final

Modalités d'évaluation

  • Évaluations intermédiaires sur les notions techniques (AAv1 et AAv2) lors d'ateliers pratiques
  • Projet personnel (AAv3) évalué sur le rendu final (notebook, dépôt versionné) et une soutenance orale
  • Évaluation transversale par épreuve de validation critique : à partir d'un notebook contenant des erreurs méthodologiques (fuite de données, métrique inadaptée, sur-ajustement non diagnostiqué, choix de modèle ou de configuration incohérent avec les données), l'étudiant identifie les erreurs, les justifie et propose les corrections appropriées

Mots clés

  • Machine learning supervisé
  • Deep learning, réseaux de neurones denses
  • Rétropropagation, descente de gradient, optimisation (SGD, Adam)
  • Régularisation (dropout, batch normalization, weight decay, early stopping)
  • Initialisation des poids, fonctions d'activation
  • Régression (Ridge, Lasso), classification, forêts aléatoires
  • scikit-learn, PyTorch, pandas
  • Validation croisée, métriques d'évaluation, diagnostic d'entraînement
  • Projet de data science

Pré-requis

  • Cours d'Analyse de données du S7 (statistique inférentielle, régression linéaire sous l'angle inférentiel, tests d'hypothèse, évaluation de la qualité statistique)
  • Algèbre linéaire (produit matriciel, produit scalaire) et analyse (dérivation, gradient, règle de la chaîne pour la rétropropagation)
  • Programmation Python, notions de NumPy, pandas et matplotlib
  • Notions de base d'algorithmique