Accueil / Factory / Algos ML / Mélange gaussien (GMM) — factory / algos ML / apprentissage non supervisé

MÉLANGE GAUSSIEN.

Un modèle qui décrit la base clients comme un mélange de plusieurs nuages en forme d'ellipses, chacun étant un segment. Chaque client reçoit une probabilité d'appartenance à chaque segment, au lieu d'une affectation tranchée. On repère ainsi les clients à cheval entre deux profils.

ClusteringProbabilitésSegmentation clientNon superviséNiveau : intermédiaire

FICHE D'IDENTITÉ

notes sur 5 · usage entreprise
PerformancePlus souple que K-means : ellipses de tailles et d'orientations variées
InterprétabilitéProfils moyens lisibles, plus des probabilités d'appartenance
VitesseRapide jusqu'à des centaines de milliers de lignes
Facilité de réglageNombre de groupes et forme des ellipses choisis par le BIC
Tolérance aux données brutesStandardisation, pas de manquants, sensible aux valeurs plafonnées
EN 30 SECONDES

Dans une salle, on entend plusieurs conversations en même temps. Pour chaque mot, on estime de quelle table il vient le plus probablement, en tenant compte du volume et de la position de chaque table.

1. On suppose k nuages en forme d'ellipse

Chaque segment est décrit par un centre, une forme (étalement et orientation) et un poids, sa part dans la base.

2. On calcule les probabilités d'appartenance

Étape E de l'algorithme EM : pour chaque client, la probabilité de venir de chaque nuage, compte tenu de sa position.

3. On réajuste les ellipses, et on recommence

Étape M : chaque ellipse est recalculée à partir des clients pondérés par leur probabilité. On alterne E et M jusqu'à stabilité. Le BIC compare ensuite les solutions à 2, 3, 4… groupes.

LE CAS MÉTIER

ciblage marketing · retail / e-commerce / banque
EN ENTRÉE

Trois variables continues par client

Panier moyen, jours depuis le dernier achat, part d'achats en promotion. Les variables de comptage (achats par mois, nombre de catégories) sont écartées : leurs valeurs plafonnées créent de faux petits groupes que le modèle prend pour des segments.

EN SORTIE

4 segments et un indice de certitude

Le BIC désigne 4 segments. Chaque client reçoit sa probabilité d'appartenance : 6,4 % des clients n'atteignent 80 % pour aucun segment. Ils sont surtout à la frontière entre les fidèles à gros panier et les très gros clients.

CE QU'ON MESURE

Le BIC pour choisir, la certitude pour agir

Le BIC pénalise la complexité : on garde le nombre de groupes qui l'optimise (le plus bas dans scikit-learn, le plus haut dans mclust). Côté action, on réserve les campagnes très ciblées aux clients dont la certitude est élevée.

QUAND LE SORTIR, QUAND L'ÉVITER

OUI

  • Segments qui se chevauchent, avec des clients à cheval
  • Besoin d'une probabilité d'appartenance pour graduer les actions
  • Groupes allongés ou de tailles différentes, là où K-means suppose des boules
  • Choix du nombre de groupes par un critère statistique (BIC)

NON

  • Variables de comptage ou plafonnées : les faux petits groupes faussent le BIC, préférer K-means
  • Groupes de formes très irrégulières : DBSCAN ou HDBSCAN
  • Données mixtes chiffres et catégories : K-prototypes ou modèle de classes latentes
  • Beaucoup de variables et peu de lignes : les ellipses complètes ont trop de paramètres, contraindre leur forme
LES 3 RÉGLAGES QUI COMPTENT

Noms donnés pour R (mclust) et Python (scikit-learn).

G / n_components

Le nombre de segments. On teste une plage (1 à 7 ici) et on garde le meilleur BIC. Attention au signe : scikit-learn cherche le BIC le plus bas, mclust le plus haut.

modelNames / covariance_type

La forme des ellipses. "full" : chaque segment a sa forme et son orientation. "diag" : ellipses alignées sur les axes. "spherical" : des boules, proche de K-means. mclust teste 14 formes et choisit par le BIC.

n_init / départs multiples

EM peut s'arrêter sur une mauvaise solution. Plusieurs départs (n_init=5) limitent ce risque. mclust part d'une classification hiérarchique, ce qui rend le résultat reproductible.

LE CODE MINIMAL

jeu d'exemple : clients_segmentation.csv ↓
# Segmentation clients avec probabilités : mélange gaussien en R
library(mclust)

clients <- read.csv("clients_segmentation.csv")
# Variables continues uniquement : les comptages créent de faux petits groupes
variables <- c("panier_moyen", "recence_jours", "part_promo")
X <- scale(clients[, variables])

# mclust teste 1 à 7 groupes et 14 formes d'ellipses ; il garde le BIC le plus haut
modele <- Mclust(X, G = 1:7)
print(summary(modele))

# Probabilité d'appartenance de chaque client à son segment
clients$segment <- modele$classification
clients$certitude <- 1 - modele$uncertainty

# Clients à cheval : aucun segment ne dépasse 80 % de probabilité
cat("Part de clients à cheval :", round(mean(clients$certitude < 0.8), 3), "\n")
print(round(aggregate(clients[, c(variables, "certitude")], by = list(segment = clients$segment), FUN = mean), 2))

QUESTIONS FRÉQUENTES

Quelle différence entre GMM et K-means ?

K-means affecte chaque client à un seul segment et suppose des groupes ronds de taille comparable. Le mélange gaussien donne une probabilité d'appartenance à chaque segment et accepte des ellipses de formes, tailles et orientations différentes. K-means est un cas limite du mélange gaussien, avec des boules identiques et des affectations tranchées.

Comment choisir le nombre de composantes d'un GMM ?

On ajuste le modèle pour plusieurs nombres de groupes et on compare le BIC, qui récompense l'ajustement et pénalise le nombre de paramètres. On vérifie ensuite que les segments ont un sens métier. Un BIC qui continue de s'améliorer avec de nombreux petits groupes signale souvent des valeurs plafonnées ou discrètes.

À quoi sert la probabilité d'appartenance ?

Elle mesure la certitude du classement. Un client à 99 % dans un segment peut recevoir une offre très ciblée ; un client partagé entre deux segments mérite une offre plus générale, ou une surveillance, car il est peut-être en train de changer de profil.

LES ALGOS VOISINS

à comparer avant de choisir
la version tranchée

K-means

Chaque client dans un seul segment, groupes supposés ronds. Plus simple et plus robuste aux données imparfaites.

Voir la fiche →
le moteur

Algorithme EM

La méthode d'estimation qui alterne probabilités d'appartenance et mise à jour des ellipses.

Voir la fiche →
densité sans hypothèse de forme

Mean Shift

Cherche les sommets de densité sans supposer d'ellipses. Plus lent, et sans probabilités d'appartenance.

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 →