Introduction au machine learning avec Python
Découvrir les fondements du machine learning avec scikit-learn. Régression, classification, clustering, évaluation de modèles : une introduction concrète et appliquée.
Dernière mise à jour le 16/03/2026
Public visé
- Développeurs Python maîtrisant les bases du langage souhaitant s'initier au machine learning de manière concrète et appliquée.
- Personnes ayant suivi les formations Python : les fondamentaux du langage et Python : programmation orientée objet et traitement de données ou disposant d'une expérience Python équivalente.
- Ingénieurs ou scientifiques souhaitant intégrer des modèles prédictifs dans leurs projets Python.
- Professionnels souhaitant passer de l'analyse manuelle de données à la modélisation prédictive avec scikit-learn.
Objectifs pédagogiques
- Comprendre les fondements du machine learning : apprentissage supervisé, non supervisé et les grands paradigmes
- Préparer et transformer des données pour l'entraînement : feature engineering, encodage et normalisation
- Entraîner et évaluer des modèles de régression : régression linéaire et polynomiale
- Entraîner et évaluer des modèles de classification : régression logistique, arbres de décision, Random Forest, SVM, k-NN
- Maîtriser la validation croisée et les métriques d'évaluation adaptées à chaque problème
- Optimiser les hyperparamètres avec GridSearchCV et RandomizedSearchCV
- Appliquer le clustering non supervisé avec k-means et DBSCAN
- Construire des pipelines scikit-learn reproductibles et maintenables
- Déployer un modèle entraîné via une API FastAPI
Prérequis
- Bonne maîtrise de Python : fonctions, listes, dictionnaires, boucles, POO et gestion des exceptions.
- Les formations Python : les fondamentaux du langage et Python : programmation orientée objet et traitement de données sont recommandées.
- Bases en statistiques descriptives : moyenne, écart-type, corrélation. Savoir utiliser le terminal et VS Code ou Jupyter Notebook.
Programme détaillé
- Les tableaux numpy : création, types, dimensions
- Opérations vectorielles : éviter les boucles avec le broadcasting
- Indexation, slicing et filtrage booléen
- Opérations matricielles : dot, reshape, transpose
- Fonctions statistiques : mean, std, min, max, percentile
- Cas pratique : préparer une matrice de features depuis des données brutes
- Series et DataFrame : créer, lire et explorer
- Lire des fichiers CSV et Excel avec read_csv et read_excel
- Sélectionner des données : loc, iloc, filtres booléens
- Gérer les valeurs manquantes : isnull, fillna, dropna
- Transformer les données : apply, map, groupby, merge, pivot
- Cas pratique : nettoyer et explorer un dataset réel avec pandas
- matplotlib : courbes, histogrammes, nuages de points
- seaborn : heatmap de corrélation, boxplot, pairplot
- Visualiser les distributions et les relations entre variables
- Cas pratique : tableau de bord exploratoire d'un jeu de données ML
- Qu'est-ce que le machine learning : apprendre à partir des données plutôt que programmer des règles
- Apprentissage supervisé : régression et classification
- Apprentissage non supervisé : clustering et réduction de dimensionnalité
- Le deep learning dans l'écosystème ML : où se situe scikit-learn
- Cas d'usage réels : détection de fraude, recommandation, prédiction de churn
- L'API unifiée scikit-learn : fit, predict, transform
- Train/test split : stratification et taille du jeu de test
- Encodage des variables catégorielles : OneHotEncoder, OrdinalEncoder
- Normalisation et standardisation : MinMaxScaler, StandardScaler, RobustScaler
- Feature engineering : créer de nouvelles variables pertinentes
- Sélection de features : corrélation, variance et importance
- Cas pratique : pipeline de préparation complet sur un dataset de prédiction de prix
- Le modèle linéaire : coefficients, interception et hypothèses
- Entraîner une régression linéaire avec scikit-learn
- Les métriques de régression : MAE, MSE, RMSE, R²
- Analyser les résidus : détecter les violations des hypothèses
- Cas pratique : prédire le prix d'un bien immobilier
- Régression polynomiale : capturer les relations non linéaires
- Régularisation : Ridge (L2) et Lasso (L1) pour éviter l'overfitting
- ElasticNet : combiner L1 et L2
- Cas pratique : comparer régression linéaire, Ridge et Lasso sur un dataset bruité
- De la régression à la classification : la fonction sigmoïde
- Classification binaire et multiclasse avec régression logistique
- Les métriques de classification : accuracy, précision, rappel, F1-score
- La matrice de confusion : interpréter les erreurs du modèle
- Cas pratique : classification de clients à risque de churn
- L'arbre de décision : comment le modèle prend ses décisions
- Hyperparamètres clés : max_depth, min_samples_split, criterion
- Random Forest : l'ensemble d'arbres pour réduire la variance
- L'importance des features dans Random Forest
- Cas pratique : classifier des emails spam avec Random Forest
- Support Vector Machine : trouver le meilleur hyperplan de séparation
- Le kernel trick : SVM non linéaire avec noyaux RBF et polynomial
- k-Nearest Neighbors : classification par voisinage et choix de k
- Cas pratique : comparer SVM et k-NN sur un problème de classification
- Le problème du surapprentissage : train score vs test score
- La validation croisée k-fold : principe et implémentation
- Stratified k-fold : respecter les proportions de classes
- Cas pratique : comparer plusieurs modèles avec validation croisée
- La courbe ROC et l'AUC : évaluer un classifieur binaire
- Précision-rappel : quand l'AUC ne suffit pas (classes déséquilibrées)
- Gestion des classes déséquilibrées : class_weight et oversampling
- Cas pratique : évaluer un modèle de détection de fraude
- GridSearchCV : recherche exhaustive dans une grille de paramètres
- RandomizedSearchCV : recherche aléatoire plus efficace
- Cas pratique : optimiser un Random Forest avec GridSearchCV
- Le boosting : apprendre des erreurs des modèles précédents
- GradientBoostingClassifier : hyperparamètres clés
- XGBoost et LightGBM : les implémentations optimisées
- Cas pratique : comparer Random Forest et XGBoost sur un benchmark
- Feature importance : Random Forest et Gradient Boosting
- Permutation importance : une mesure plus robuste
- Partial Dependence Plots : visualiser l'effet d'une feature
- Cas pratique : expliquer les prédictions d'un modèle de crédit
- L'algorithme k-means : centroïdes, assignation et convergence
- Choisir k : la méthode du coude et le score de silhouette
- DBSCAN : clustering par densité sans nombre de clusters fixé
- Cas pratique : segmenter des clients par comportement d'achat
- Le fléau de la dimensionnalité : pourquoi trop de features nuit
- PCA : principe, variance expliquée et choix du nombre de composantes
- Cas pratique : visualiser des données en 2D avec PCA
- Le Pipeline scikit-learn : chaîner des transformateurs et un estimateur
- ColumnTransformer : appliquer des transformations différentes par type de colonne
- Intégrer le feature engineering dans le pipeline
- Utiliser GridSearchCV sur un pipeline complet
- Sérialiser un pipeline avec joblib : dump et load
- Versioning des modèles : bonnes pratiques pour la traçabilité
- MLflow : suivre les expériences, les paramètres et les métriques
- Cas pratique : pipeline complet sauvegardé, rechargé et loggé dans MLflow
- Sélectionner un jeu de données réel parmi une liste proposée
- Formuler le problème ML : type de tâche, métriques cibles
- EDA avec pandas, numpy et seaborn
- Feature engineering et préparation des données
- Entraîner et comparer plusieurs modèles avec validation croisée
- Optimiser le meilleur modèle et construire le pipeline final avec joblib
- Charger le pipeline joblib au démarrage de l'API avec lifespan
- Créer un endpoint /predict : recevoir les features et retourner la prédiction
- Valider les entrées avec Pydantic : types, contraintes, valeurs manquantes
- Retourner la prédiction et le score de confiance dans la réponse JSON
- Documenter l'endpoint dans Swagger UI
- Cas pratique : API de prédiction de prix immobilier
- Écrire un Dockerfile pour l'API FastAPI avec le modèle embarqué
- Docker Compose : API + dépendances
- Déployer sur un VPS ou Render : API accessible publiquement
- Monitorer les prédictions : logger les entrées et les sorties pour détecter le drift
- Cas pratique : déploiement complet du modèle de synthèse
- Cahier des charges : résoudre un problème de classification ou de régression sur un dataset réel
- Fonctionnalités : exploration et nettoyage des données avec pandas et numpy, EDA avec seaborn et matplotlib, pipeline scikit-learn avec feature engineering, comparaison d'au moins trois modèles avec validation croisée, optimisation des hyperparamètres avec GridSearchCV, interprétabilité avec feature importance, déploiement du meilleur modèle via FastAPI
- Étape 1 : EDA et préparation des données
- Étape 2 : entraînement, évaluation et sélection du modèle
- Étape 3 : pipeline final et sauvegarde joblib
- Étape 4 : déploiement FastAPI et présentation
- Revue collective : choix de modèles, métriques, interprétation des résultats
- Retour formateur individualisé sur le projet rendu
Compétences visées
- Préparer un jeu de données brut pour l'entraînement d'un modèle de machine learning
- Choisir et entraîner le modèle adapté selon le type de problème (régression, classification, clustering)
- Évaluer les performances d'un modèle avec les métriques appropriées et interpréter les résultats
- Optimiser un modèle par recherche d'hyperparamètres avec validation croisée
- Construire un pipeline scikit-learn de bout en bout reproductible
- Déployer un modèle entraîné en production via une API REST FastAPI
Modalités et méthodes pédagogiques
Modalités d'évaluation
- En cours de formation : exercices de modélisation corrigés à chaque module
- En fin de formation : réalisation d'un projet ML complet de bout en bout avec déploiement FastAPI
- Questionnaire d'auto-évaluation des acquis en fin de parcours
Critères d'évaluation
- Exploration et nettoyage corrects des données avec pandas : valeurs manquantes, types, distributions
- Pipeline scikit-learn fonctionnel avec feature engineering intégré et reproductible
- Comparaison rigoureuse de plusieurs modèles avec validation croisée et métriques adaptées au problème
- Interprétation correcte des résultats : métriques, feature importance et limites du modèle
- API FastAPI fonctionnelle exposant le modèle avec validation Pydantic et documentation Swagger
Modalités de validation
Moyens pédagogiques et techniques
- Support de cours numérique mis à disposition des apprenants
- Notebooks Jupyter de démonstration avec exercices et corrections par module
- Environnement de développement : VS Code ou Jupyter Lab + Python 3.12+ + scikit-learn + XGBoost + FastAPI
- Pour le distanciel : visioconférence (Zoom ou équivalent), partage d'écran, chat en direct
- Accès à la plateforme pédagogique LaPolaris (supports, ressources, émargement)
Accessibilité aux personnes en situation de handicap
Suivi et accompagnement
- Feuilles d'émargement signées par demi-journée (présentiel) ou émargement numérique (distanciel)
- Traçabilité des activités pédagogiques réalisées
- Attestation d'assiduité délivrée en fin de formation
- Suivi individuel via les notebooks corrigés et le projet de synthèse
Conditions d'accès
Délais d'accès
Autres formations en Python & Data
Python : POO et traitement de données
Approfondir Python avec la programmation orientée objet, la manipulation de fichiers (CSV, JSON), les modules standards et les bonnes pratiques de code.
Automatisation et scripting avec Python
Automatiser des tâches répétitives avec Python : manipulation de fichiers, emails, scraping web, interaction avec des APIs. Gagnez du temps grâce au scripting.
Créer une API REST avec Python et FastAPI
Développer des APIs modernes et performantes avec FastAPI. Typage, validation, documentation automatique, base de données : le framework Python qui monte en puissance.