Accueil / Factory / Algos ML / Algorithme EM — factory / algos ML / estimation à variables cachées

ALGORITHME EM.

Une méthode pour estimer un modèle quand une information manque : le segment de chaque client, la cause d'une panne, une valeur non renseignée. EM alterne deux étapes simples, deviner l'information cachée puis réestimer le modèle, jusqu'à ce que plus rien ne bouge. C'est le moteur des mélanges gaussiens, des modèles de Markov cachés et de l'imputation de données.

InférenceVariables latentesSegmentationMaximum de vraisemblanceNiveau : avancé

FICHE D'IDENTITÉ

notes sur 5 · usage entreprise
PerformanceConverge sûrement, mais parfois vers un optimum local
InterprétabilitéChaque étape a un sens : affecter, puis recalculer
VitesseChaque itération est rapide, la convergence parfois lente
Facilité de réglageNombre de groupes et initialisation à choisir avec soin
Tolérance aux données brutesSuppose un modèle probabiliste juste ; sensible aux échelles
EN 30 SECONDES

On mélange les sacs de billes de 4 joueurs. Pour retrouver à qui est chaque bille, on devine d'abord les profils de chaque joueur, on estime pour chaque bille la probabilité qu'elle vienne de chaque joueur, on recalcule les profils en pondérant par ces probabilités, et on recommence.

1. On part d'une supposition

Des paramètres initiaux, même grossiers : 4 segments avec une moyenne et une dispersion chacun, tirés au hasard ou issus d'un K-means.

2. Étape E (Expectation)

Avec ces paramètres, on calcule pour chaque client la probabilité d'appartenir à chaque segment. L'information cachée est remplacée par une estimation probabiliste, pas par un choix tranché.

3. Étape M (Maximization)

On recalcule les paramètres de chaque segment en pondérant chaque client par sa probabilité d'appartenance. C'est un maximum de vraisemblance ordinaire, rendu possible parce que rien n'est plus caché.

4. On recommence jusqu'à stabilité

Chaque tour fait monter la vraisemblance, ou la laisse égale. On s'arrête quand elle ne progresse plus.

LE CAS MÉTIER

segmentation · retail / e-commerce
EN ENTRÉE

2 000 clients, aucun segment connu

Panier moyen, achats par mois, récence du dernier achat, nombre de catégories achetées, part des achats en promotion. Le segment de chaque client est l'information cachée que l'on cherche.

EN SORTIE

4 segments et une probabilité par client

Sur le jeu d'exemple, EM isole notamment 316 gros clients fidèles (panier de 151 € en moyenne, 10 achats par mois) et 516 clients très sensibles aux promotions et peu actifs. Chaque client reçoit sa probabilité d'appartenance : seuls 26 sont affectés avec moins de 80 % de certitude.

CE QU'ON MESURE

La vraisemblance, puis le bon sens métier

La log-vraisemblance doit monter à chaque itération puis se stabiliser : partie au hasard, elle plafonne ici après une trentaine de tours. Ensuite, le marketing vérifie que chaque segment est lisible et actionnable.

QUAND LE SORTIR, QUAND L'ÉVITER

OUI

  • Modèle à information manquante : segment inconnu, état caché, donnée non renseignée
  • Besoin de probabilités d'appartenance plutôt que d'une affectation tranchée
  • Segments de formes et de tailles différentes, là où K-means impose des groupes ronds
  • Données incomplètes : estimer un modèle malgré des valeurs non renseignées, sans supprimer les lignes

NON

  • Simple partition rapide de gros volumes : K-means (qui est un cas limite d'EM) suffit
  • Données sans modèle probabiliste crédible : EM ne trouve que ce que le modèle permet
  • Variables très discrètes (comptages, notes) dans un mélange gaussien : risque de segments dégénérés
  • Besoin d'une incertitude sur les paramètres eux-mêmes : passer à une approche bayésienne (MCMC)
LES 4 RÉGLAGES QUI COMPTENT

Noms donnés pour R (mclust) et Python (scikit-learn), pour le cas le plus courant : le mélange gaussien.

Nombre de composantes : G / n_components

EM ne le choisit pas seul. Le critère BIC aide à comparer plusieurs valeurs, mais un segment inutilisable par le métier ne sert à rien, même s'il améliore le BIC.

Initialisation : init_params / n_init

EM peut s'arrêter sur un optimum local. On part d'un K-means (par défaut dans scikit-learn) ou on relance plusieurs fois et on garde la meilleure vraisemblance.

Forme des segments : modelNames / covariance_type

Segments ronds ou allongés, de même taille ou non. mclust teste plusieurs formes et garde la meilleure au BIC ; scikit-learn utilise « full » par défaut.

Arrêt : tol / max_iter

EM s'arrête quand la vraisemblance ne progresse plus au-delà d'un seuil. Un message de non-convergence doit faire relancer avec plus d'itérations.

LE CODE MINIMAL

jeu d'exemple : clients_segmentation.csv ↓
# Segments clients cachés : algorithme EM en R
library(mclust)

clients <- read.csv("clients_segmentation.csv")
variables <- c("panier_moyen", "achats_par_mois", "recence_jours", "nb_categories", "part_promo")
X <- scale(clients[, variables])

# Mélange de 4 segments gaussiens estimé par EM (le BIC choisit la forme des nuages)
modele <- Mclust(X, G = 4)
print(summary(modele))
cat("Log-vraisemblance finale :", round(modele$loglik, 1), "\n")

# Profils moyens des segments, en unités d'origine
clients$segment <- modele$classification
print(round(aggregate(clients[, variables], by = list(segment = clients$segment), FUN = mean), 2))
print(table(clients$segment))

# Étape E : probabilité d'appartenance de chaque client à chaque segment
cat("Clients affectés avec moins de 80 % de certitude :", sum(apply(modele$z, 1, max) < 0.8), "\n")

QUESTIONS FRÉQUENTES

À quoi sert l'algorithme EM ?

Il estime les paramètres d'un modèle statistique quand une partie des données est inobservée : appartenance à un groupe, état caché, valeur manquante. Il est utilisé pour la segmentation par mélange gaussien, les modèles de Markov cachés, l'imputation de données et certains modèles de traduction ou de reconnaissance vocale.

Quelle différence entre EM et K-means ?

K-means affecte chaque point à un seul groupe, puis recalcule les centres. EM calcule une probabilité d'appartenance à chaque groupe et estime aussi la dispersion et le poids de chacun. K-means peut se voir comme un cas limite d'EM, avec des groupes ronds, de même dispersion et une affectation tranchée.

L'algorithme EM trouve-t-il toujours la meilleure solution ?

Non. Chaque itération améliore la vraisemblance, ou la laisse égale, mais l'algorithme peut s'arrêter sur un optimum local qui dépend du point de départ. On le relance donc plusieurs fois avec des initialisations différentes et on garde la solution de plus forte vraisemblance.

LES ALGOS VOISINS

à comparer avant de choisir
l'application phare

Mélange gaussien (GMM)

Le modèle de segmentation qu'EM sait estimer. La fiche GMM détaille le choix du nombre de segments.

Voir la fiche →
la version tranchée

K-means

Même alternance affecter puis recalculer, mais chaque client va entièrement dans un seul groupe.

Voir la fiche →
EM dans le temps

Modèle de Markov caché (HMM)

Ses paramètres s'estiment avec une version d'EM (Baum-Welch), quand l'état caché évolue d'une période à l'autre.

Voir la fiche →
— formation

Passer de la fiche à la pratique

Dataistudio forme les équipes au machine learning et à l'IA, sur des cas concrets.

Voir les formations →