Module 9 — Modèles de mélange gaussien
Retour au partitionnement, avec un outil qui répare les deux limites les plus gênantes des k-moyennes. D'abord, un point n'appartient plus à un groupe de façon tranchée : il y appartient avec une probabilité. Ensuite, les groupes ne sont plus contraints d'être sphériques. Le mélange gaussien est la généralisation naturelle du module 2, et il éclaire rétrospectivement ce que celui-ci supposait.
Le modèle : les données comme mélange de gaussiennes
L'hypothèse est explicite, ce qui est une force : les données proviennent de plusieurs distributions normales (gaussiennes) superposées, chacune correspondant à un groupe. Chaque composante est décrite par trois éléments — sa moyenne (son centre), sa matrice de covariance (sa forme et son orientation), et son poids (sa proportion dans le mélange).
Partitionner revient alors à un problème d'estimation : retrouver les paramètres des gaussiennes qui expliquent le mieux les données observées. C'est un modèle génératif, et cela a une conséquence appréciable : une fois ajusté, il permet de générer de nouvelles données plausibles, et d'évaluer la vraisemblance de n'importe quel point.
L'affectation probabiliste, et ce qu'elle change
Les k-moyennes affectent chaque point à un seul groupe (affectation dure). Un mélange gaussien fournit, pour chaque point, sa probabilité d'appartenance à chaque groupe (affectation douce) : 70 % groupe A, 25 % groupe B, 5 % groupe C.
L'intérêt est très concret. Un client à la frontière de deux segments est fréquent, et le savoir vaut mieux que de l'affecter arbitrairement. Ces probabilités identifient les cas ambigus, ceux qui méritent une attention particulière ou une décision prudente — information qu'une affectation dure détruit purement et simplement.
from sklearn.mixture import GaussianMixture
gmm = GaussianMixture(n_components=4, covariance_type="full", random_state=42).fit(X_s)
gmm.predict(X_s) # groupe le plus probable
gmm.predict_proba(X_s) # probabilites par groupe : l'apport specifique du GMM
Des formes libres grâce à la covariance
C'est le second apport, et il découle du paramètre covariance_type. Chaque gaussienne possédant sa propre matrice de covariance, un groupe peut être allongé, incliné, plus large qu'un autre. Là où les k-moyennes découpaient l'espace en cellules autour de centres, un mélange gaussien épouse des ellipses orientées.
covariance_type | Formes autorisées | Paramètres |
|---|---|---|
spherical | sphères | peu |
diag | ellipses alignées sur les axes | modéré |
tied | même forme pour tous les groupes | modéré |
full | ellipses quelconques, orientation libre | nombreux |
full est le plus expressif, mais aussi le plus gourmand en données : estimer une covariance complète par groupe demande beaucoup d'observations, surtout en grande dimension. Le compromis usuel est diag quand les données sont peu nombreuses au regard du nombre de variables. On retrouve exactement l'arbitrage biais-variance du cours supervisé, ici sous la forme du nombre de paramètres.
Cette grille éclaire aussi une équivalence instructive : des composantes spherical de même poids, avec affectation dure, redonnent essentiellement les k-moyennes. Le module 2 était donc un cas particulier de celui-ci.
L'algorithme EM et le choix du nombre de composantes
L'ajustement se fait par espérance-maximisation (EM), dont la structure rappellera le module 2 : on alterne l'estimation des probabilités d'appartenance (étape E) et la mise à jour des paramètres des gaussiennes (étape M), jusqu'à stabilisation de la vraisemblance. Comme les k-moyennes, EM converge vers un optimum local et dépend de l'initialisation — d'où l'usage de plusieurs relances (n_init).
Pour le nombre de composantes, le mélange gaussien offre un avantage net sur le module 3 : étant un vrai modèle statistique, il autorise des critères fondés. Le BIC (critère d'information bayésien) additionne la qualité d'ajustement et une pénalité sur le nombre de paramètres ; on retient le qui minimise le BIC. C'est plus objectif que la lecture d'un coude, la pénalité écartant automatiquement les modèles inutilement complexes.
bics = [GaussianMixture(n, random_state=42).fit(X_s).bic(X_s) for n in range(2, 11)]
Trois signaux plaident pour lui : des groupes visiblement allongés ou de tailles inégales ; un besoin explicite d'identifier les cas frontières ; ou l'utilité d'un modèle génératif (simulation, calcul de vraisemblance, détection d'anomalies par faible vraisemblance — un pont direct avec le module 8). En revanche, sur de très gros volumes en grande dimension, les k-moyennes restent plus rapides et plus robustes, et l'hypothèse gaussienne doit rester plausible : des données fortement asymétriques ou multimodales à l'intérieur d'un groupe la mettent en défaut.
En résumé
- Un mélange gaussien modélise les données comme une superposition de gaussiennes, chacune définie par moyenne, covariance et poids.
- L'affectation est probabiliste : elle révèle les cas frontières que l'affectation dure des k-moyennes efface.
covariance_typelibère la forme des groupes (ellipses orientées) ;fullest le plus expressif,diagle compromis quand les données manquent.- L'ajustement se fait par EM (optimum local, plusieurs relances) et le nombre de composantes se choisit en minimisant le BIC.
Module suivant : le projet de segmentation de clientèle, où toutes les méthodes du cours s'articulent en une démarche complète.