01 75 60 34 00 | conseil@ensae.fr | Prenez RDV |

Les fondamentaux du Machine learning avec Python

Prochaine session 25, 26 et 27 nov. 2026 Session garantie
S'inscrire
Voir les autres sessions
Les fondamentaux du Machine learning avec Python

Objectifs pédagogiques

  • Comprendre les principes du machine learning : régression vs classification supervisée, biais-variance, sur-apprentissage, validation croisée…
  • Connaître et savoir mettre en œuvre les méthodes de base en régression et classification supervisée : modèle linéaire généralisé (GLM), régression régularisée
  • Appréhender les méthodes d’arbres (CART & random forest) et les mettre en pratique.

Programme détaillé

La formation présente les concepts de base en machine learning, ainsi que les méthodes de base en régression et classification supervisée.

Bases du machine learning 3h

  • Apprentissage supervisé vs non supervisé
  • Régression vs classification supervisée
  • Coût (perte) et risque (erreur de généralisation)
  • Biais-variance d’un prédicteur
  • Sur-apprentissage et palliatifs (apprentissage/test, validation croisée)

Rappel sur le modèle linéaire 3h

  • Régression : régression linéaire
  • Choix des variables
  • Applications sur cas pratiques

Codage et interprétation des variables qualitatives 2h

Régression régularisée 4h

  • Ridge
  • LASSO
  • Elasticnet
  • Comparaison des méthodes par validation croisée
  • Applications sur cas pratiques

Classification supervisée 3h

  • Régression logistique
  • Critères d’évaluation : précision, recall…
  • Applications sur cas pratiques
  • Classification supervisée pénalisé
  • Comparaison de méthodes par validation croisée

Agrégation d’arbres 3h

  • Arbres de régression et de décision (CART)
  • Introduction aux random forests
  • Applications sur cas pratiques

Public visé

Data analysts, data scientists

Prérequis

Approche pédagogique

Moyens pédagogiques
Exposé théorique de concepts Applications pratiques sur ordinateur Échanges sur les pratiques et expériences des participants Temps de questions / réponses Exercices, quiz, etc.
Méthodes pédagogiques
Méthode expositive Méthode active
Satisfaction globale
★★★★★ ★★★★★
4,7/5

Calculés à partir de 17 avis recueillis depuis 05/06/2024, lors de 3 sessions de cette formation.

Contenu
★★★★★ ★★★★★ 4,5/5
Durée et rythme
★★★★★ ★★★★★ 3,6/5
Formateur
★★★★★ ★★★★★ 4,7/5
Supports et ressources
★★★★★ ★★★★★ 4,7/5

Machine learning : prédire ou expliquer, les « deux cultures » de Breiman

En 2001, Leo Breiman, statisticien à Berkeley et co-auteur de la méthode CART, publie dans Statistical Science un article qui fait encore débat : « Statistical Modeling: The Two Cultures ». Il y décrit deux manières de tirer des conclusions des données. La seconde est devenue le machine learning.

Deux cultures face aux mêmes données

La culture de la modélisation des données suppose que les observations sont produites par un modèle stochastique connu à quelques paramètres près, dont la régression linéaire est l’archétype ; on juge le modèle sur son ajustement et sur la significativité de ses coefficients. La culture algorithmique traite le mécanisme qui produit les données comme inconnu et juge un modèle sur un seul critère : la qualité de ses prédictions sur des données qu’il n’a pas vues. Breiman estimait que 98 % des statisticiens appartenaient à la première et 2 % à la seconde, « dont beaucoup dans d’autres disciplines ». Son plaidoyer pour la seconde a été discuté dans le même numéro, notamment par David Cox et Bradley Efron.

Vingt-cinq ans plus tard, les deux cultures cohabitent plus qu’elles ne s’opposent : la régression logistique et la régression pénalisée relèvent des deux, les forêts aléatoires surtout de la seconde.

Juger un modèle sur des données qu’il n’a pas vues

Le critère de la culture algorithmique se mesure par validation croisée. Sur un jeu de données classique (442 patients diabétiques, 10 variables), on fait varier la profondeur d’un arbre de régression :

from sklearn.datasets import load_diabetes
from sklearn.model_selection import validation_curve
from sklearn.tree import DecisionTreeRegressor

X, y = load_diabetes(return_X_y=True)
profondeurs = range(1, 11)
r2_app, r2_val = validation_curve(
    DecisionTreeRegressor(random_state=0), X, y,
    param_name="max_depth", param_range=profondeurs, cv=5,
)
print(r2_app.mean(axis=1).round(2))   # [0.3  0.44 0.52 0.59 0.67 0.75 0.83 0.89 0.94 0.97]
print(r2_val.mean(axis=1).round(2))   # [ 0.17  0.33  0.31  0.28  0.23  0.15  0.11  0.   -0.08 -0.14]

Sur les données d’apprentissage, le R² progresse à chaque niveau de profondeur. En validation croisée, il culmine à la profondeur 2, puis décroît jusqu’à devenir négatif : l’arbre profond prédit alors moins bien que la simple moyenne. C’est le sur-apprentissage, et l’arbitrage biais-variance rendu visible.

scikit-learn, une bibliothèque née en France

scikit-learn a été lancée en 2007 par David Cournapeau dans le cadre d’un Google Summer of Code. En 2010, quatre chercheurs de l’Inria en reprennent la direction et publient la première version publique le 1er février 2010. Son interface uniforme en a fait l’outil de référence de la culture algorithmique en Python : comparer par validation croisée un modèle linéaire, un lasso et une forêt aléatoire ne demande que de changer une ligne.

Pour lire un modèle en statisticien (écarts-types, tests, odds-ratios), statsmodels reste plus adapté : voir Classification supervisée avec Python. Les méthodes d’agrégation plus avancées sont l’objet de Machine learning : bagging, gradient boosting, SVM avec Python.