Cours de data science & machine learning
Ce cours est mon support de formation à la data science et au machine learning : un endroit unique où centraliser ce que j'apprends, plutôt qu'une collection de notes éparpillées entre des notebooks, des articles et des marque-pages.
Comment ce cours a été écrit
Le contenu a été rédigé par Claude Code (l'assistant de programmation d'Anthropic) à ma demande, à partir d'un programme que j'ai défini et de mes lacunes identifiées — analyse en composantes principales, statistique inférentielle, concurrence en Python. Je préfère le dire clairement plutôt que de laisser croire à une rédaction manuelle : l'objectif est de disposer d'un parcours cohérent et complet, calibré sur mon niveau (prépa scientifique, Python et mathématiques solides), que je relis, corrige et complète au fil de mon apprentissage. Les erreurs qui subsistent restent les miennes — si vous en repérez une, elle m'intéresse.
Le cours compte 28 modules, du premier environnement Python jusqu'à un projet complet mis en production, plus trois annexes — un glossaire, une série d'exercices et une bibliographie. Chaque module est une page autonome.
Le format
Le cours suppose des bases solides en mathématiques et en Python — je ne réexplique ni le calcul différentiel, ni l'algèbre linéaire élémentaire. En revanche, tout ce qui est spécifique à la data science est repris depuis le problème qu'il résout, avec des exemples de code exécutables. Chaque notion suit la même trame :
La trame de chaque notion
- Le problème — à quoi ça répond, ce que ça évite, pourquoi ça existe.
- L'intuition — l'idée en une image, sans formule.
- Le formalisme minimal — les équations nécessaires, pas une de plus.
- Le code — des commandes et des extraits complets, commentés, qui tournent.
- Avantages et limites — pourquoi la choisir, et quand elle casse.
Les modules sont progressifs mais pas strictement séquentiels. L'ordre de lecture conseillé est celui des sept parties ci-dessous ; chaque module renvoie explicitement aux autres quand une notion y a déjà été traitée. Le dernier module reprend l'ensemble sur un projet unique, du scraping à la mise en production.
Quatre façons de le parcourir
Vingt-huit modules, cela ne se lit pas d'affilée. Selon ce qu'on cherche, quatre entrées possibles :
Choisir son parcours
- Dans l'ordre — le parcours conçu : chaque module suppose les précédents et rien d'autre. C'est le seul qui garantisse qu'aucune notion n'arrive sans avoir été expliquée.
- Combler une lacune précise — aller droit au module concerné, en s'appuyant sur le glossaire pour les termes croisés en chemin. Les modules 8 (SVD et PCA), 9 (tests d'hypothèse), 2 (concurrence) et 11 (causalité) se lisent isolément.
- Entrer par la pratique — commencer par le projet final, buter sur ce qu'on ne comprend pas, et remonter vers le module correspondant. Plus frustrant, souvent plus efficace.
- Vérifier ce qu'on sait — passer directement aux exercices, et ne lire que les modules dont l'exercice résiste.
Le cours en un seul document
Les 28 modules et les trois annexes sont aussi réunis sur une page unique — pratique pour chercher dans tout le cours d'un coup — et dans un PDF d'environ 460 pages, à emporter hors ligne.
Le parcours
Partie I — Outillage
De quoi travailler proprement : le langage, ses mécanismes, les données et le déploiement.
Python moderne
Module 1 · Outillage
Structure d'un projet, systèmes de build et UV, puis les mécanismes du langage expliqués de zéro : *args et **kwargs, décorateurs (un par un, avec exemple), méthodes spéciales et dataclasses, annotations de type, itérateurs et générateurs. Qualité avec ruff, pytest et pre-commit.
Concurrence en Python
Module 2 · Outillage
Processus contre threads, le GIL expliqué et mesuré, comment diagnostiquer si un programme attend ou calcule, puis les trois outils en détail : ThreadPoolExecutor, ProcessPoolExecutor et asyncio.
Boîte à outils numérique
Module 3 · Outillage
NumPy en profondeur (broadcasting, vues, mémoire), pandas contre polars contre Dask et comment choisir, l'API scikit-learn, PyTorch face à TensorFlow.
SQL et bases de données
Module 4 · Outillage
Modèle relationnel, jointures et cardinalité, fonctions de fenêtre, CTE, sémantique des NULL, index et plans d'exécution, transactions ACID, OLTP contre OLAP, NoSQL et DuckDB.
Docker, Compose et Kubernetes
Module 5 · Outillage
Ce qui distingue un conteneur d'une VM, les commandes du quotidien, un Dockerfile multi-étapes commenté, volumes et réseaux, une pile Compose complète, et les objets Kubernetes expliqués un par un.
FastAPI, Pydantic et Jinja
Module 6 · Outillage
Le minimum vital sur HTTP, Pydantic pour valider ce qui entre, FastAPI pour exposer un modèle sans bloquer le serveur, Jinja pour une interface web, tests et mise en production.
Ingénierie des données
Module 7 · Outillage
Faire arriver les données jusqu'à l'analyse : formats colonne (Parquet, Arrow), partitionnement, ELT et schéma en étoile, dbt, orchestration idempotente, flux Kafka, contrats de données.
Partie II — Socle mathématique et statistique
Les fondations sur lesquelles tout le reste s'appuie.
Mathématiques du ML
Module 8 · Socle mathématique et statistique
Descente de gradient et ses variantes jusqu'à AdamW, algèbre linéaire numérique, SVD et PCA traitées en détail, et le choix des métriques d'évaluation.
Statistique inférentielle
Module 9 · Socle mathématique et statistique
Ce qu'est vraiment une p-value, tests et puissance, intervalles de confiance et bootstrap, comparaisons multiples, corrélation contre causalité, et un A/B test de bout en bout.
Inférence bayésienne et incertitude
Module 10 · Socle mathématique et statistique
Vraisemblance et MAP (donc la régularisation comme a priori), MCMC et NUTS, modèles hiérarchiques, incertitude aléatoire contre épistémique, et prédiction conforme.
Inférence causale
Module 11 · Socle mathématique et statistique
Mesurer l'effet d'une action plutôt qu'une corrélation : résultats potentiels, ATE et CATE, CUPED, score de propension, différences de différences, discontinuité, variables instrumentales, double ML.
Partie III — Méthode et données
Transformer un problème métier en jeu de données exploitable.
Data science en pratique
Module 12 · Méthode et données
Cycle de vie, cadrage, exploration, données manquantes et déséquilibrées, feature engineering, validation croisée adaptée aux données, et catalogue des fuites de données.
Apprendre avec peu d'étiquettes
Module 13 · Méthode et données
Transfert, apprentissage actif, semi-supervisé et auto-supervisé, supervision faible, données synthétiques et sim2real, et comment décider combien annoter.
Partie IV — Familles de modèles
Les grandes familles d'algorithmes, et pourquoi elles généralisent.
Machine learning classique
Module 14 · Familles de modèles
Biais-variance, modèles linéaires régularisés, SVM, arbres, forêts aléatoires, gradient boosting, clustering, recherche d'hyperparamètres et interprétabilité SHAP.
Théorie de l'apprentissage
Module 15 · Familles de modèles
Cadre PAC et dimension VC, no free lunch et biais inductif, double descente, régularisation implicite de SGD — et ce que la théorie n'explique toujours pas.
Deep learning
Module 16 · Familles de modèles
MLP et rétropropagation, recettes d'entraînement, CNN, RNN, transformers et attention, PINN pour les problèmes régis par des EDP, et les limites du deep learning.
Séries temporelles et durées de vie
Module 17 · Familles de modèles
Stationnarité, ETS et ARIMA, features temporelles sans fuite, prévision probabiliste, filtre de Kalman, analyse spectrale, et analyse de survie pour la fiabilité.
Données non tabulaires
Module 18 · Familles de modèles
Texte du TF-IDF aux transformers, vision au-delà de la classification, audio, et un traitement complet des graphes et des réseaux de neurones sur graphes.
Processus gaussiens et optimisation bayésienne
Module 19 · Familles de modèles
Régression par processus gaussien, noyaux et incertitude prédictive, fonctions d'acquisition, optimisation d'expériences coûteuses avec BoTorch.
Partie V — Domaines et applications
Les domaines qui ont leurs propres règles.
Apprentissage par renforcement
Module 20 · Domaines et applications
MDP et équations de Bellman, Q-learning et DQN, gradient de politique et PPO, et une évaluation honnête du coût du RL face au supervisé.
ML pour la simulation et l'ingénierie
Module 21 · Domaines et applications
Monte-Carlo et réduction de variance, plans d'expériences, indices de Sobol, métamodèles, réduction de modèle par POD, opérateurs neuronaux et assimilation de données.
LLM, embeddings et RAG
Module 22 · Domaines et applications
Embeddings et recherche sémantique, index vectoriels, pipeline RAG complet et son évaluation, prompt engineering, LoRA et DPO, servage et injection de prompt.
Recherche, ranking et recommandation
Module 23 · Domaines et applications
Architecture récupération-classement, recherche hybride, learning to rank et NDCG, biais de position, factorisation matricielle et retour implicite.
Partie VI — Décision, production et responsabilité
Ce qui se passe une fois qu'un modèle existe.
Du score à la décision
Module 24 · Décision, production et responsabilité
Seuils fondés sur les coûts d'erreur, sélection sous contrainte de capacité, uplift modeling, bandits contextuels, quantiles de décision et recherche opérationnelle.
Passer à l'échelle
Module 25 · Décision, production et responsabilité
Hiérarchie mémoire des GPU et modèle roofline, précision mixte, budget mémoire d'un entraînement, profilage, DDP et FSDP, optimisation de l'inférence.
MLOps
Module 26 · Décision, production et responsabilité
Reproductibilité, versioning des données et des modèles, tracking d'expériences, servage, CI/CD, détection de dérive et checklist de mise en production.
Équité, robustesse et sécurité
Module 27 · Décision, production et responsabilité
Sources de biais, définitions d'équité et leur incompatibilité, attaques adverses, empoisonnement, confidentialité différentielle, RGPD et AI Act.
Partie VII — Mise en pratique
Tout le cours, appliqué à un projet unique.
Projet de A à Z : annonces immobilières
Module 28 · Mise en pratique
Le pipeline complet, en tutoriel : scraping respectueux du droit, nettoyage, base PostgreSQL, modèle de prédiction de prix, API conteneurisée et CI/CD GitHub Actions.
Annexes
Trois pages transversales, qui ne sont pas des modules mais s'utilisent tout au long du cours.
Glossaire et notations
Annexe · Référence
Les conventions de notation employées partout, puis environ cent quarante définitions courtes renvoyant chacune au module où la notion est développée.
Exercices et auto-évaluation
Annexe · Pratique
Trente et un exercices, un par notion difficile, avec un critère de vérification chiffré et sans corrigé. Plusieurs sont faits pour échouer d'abord.
Ressources pour aller plus loin
Annexe · Bibliographie
Une recommandation par sujet plutôt qu'une bibliographie : livres, cours en ligne, une trentaine d'articles fondateurs, jeux de données, et comment lire un article.
© 2026 Nils Malmberg — nils-malmberg.fr. Ce cours et le PDF qui en est tiré sont mis à disposition pour un usage personnel et pédagogique ; toute rediffusion, mise en ligne ou exploitation commerciale requiert une autorisation écrite préalable.