Accueil / Factory / Algos ML / Cartes de Kohonen (SOM) — factory / algos ML / apprentissage non supervisé

CARTES DE KOHONEN.

Une grille de neurones qui se déforme pour épouser les données : chaque client est rangé dans une case, et des clients qui se ressemblent tombent dans des cases voisines. On obtient une carte de la base, sur laquelle on colore ensuite un indicateur métier comme le churn ou le chiffre d'affaires.

ClusteringVisualisationRéseau de neuronesDonnées tabulairesNiveau : avancé

FICHE D'IDENTITÉ

notes sur 5 · usage entreprise
PerformanceSegmentation correcte, proche d'un K-means à nombreux groupes
InterprétabilitéUne carte 2D que l'on colore et commente avec le métier
VitesseRapide jusqu'à quelques centaines de milliers de lignes
Facilité de réglageTaille de grille, voisinage et durée d'entraînement à régler
Tolérance aux données brutesStandardisation obligatoire, catégories à encoder
EN 30 SECONDES

Un plan de salle où chaque invité doit s'asseoir près de ceux qui lui ressemblent. Au début, les places sont attribuées au hasard, puis on réajuste la salle entière jusqu'à ce que les voisins de table se ressemblent.

1. On pose une grille de neurones

Chaque case de la grille, par exemple 6 x 6, porte un profil type : une valeur par variable. Au départ, ces profils sont tirés au hasard ou le long des axes d'une ACP.

2. Chaque client attire sa case et ses voisines

On présente les clients un par un. La case dont le profil est le plus proche gagne et se rapproche du client. Ses voisines sur la grille bougent aussi, un peu moins. C'est ce voisinage qui ordonne la carte.

3. Le voisinage se resserre

Au fil de l'entraînement, le rayon d'influence et la vitesse d'ajustement diminuent. La carte se fige : chaque client est rangé dans sa case, et des cases proches décrivent des clients proches.

LE CAS MÉTIER

churn · télécom / énergie / assurance
EN ENTRÉE

Le profil de chaque abonné

Ancienneté, appels au support, montant mensuel, incidents des 3 derniers mois, type de contrat. La colonne churn n'est pas donnée à la carte : elle sert seulement à la lire ensuite.

EN SORTIE

Une carte colorée par taux de départ

Chaque case regroupe quelques dizaines d'abonnés au profil proche. En colorant les cases par leur taux de churn, on voit apparaître des zones à risque, par exemple des abonnés récents qui appellent souvent le support, et on peut nommer chaque région de la carte avec les équipes métier.

CE QU'ON MESURE

Qualité de la carte, puis lecture métier

L'erreur de quantification mesure la distance moyenne entre un client et le profil de sa case. L'erreur topographique mesure la part des clients dont les deux cases les plus proches ne sont pas voisines : si elle est élevée, la carte est mal dépliée. Ensuite, le vrai test est métier : des zones qui ont du sens et des écarts nets de churn entre zones.

QUAND LE SORTIR, QUAND L'ÉVITER

OUI

  • Présenter une base clients à des équipes métier sous forme de carte lisible
  • Croiser une segmentation avec un indicateur qui n'a pas servi à la construire (churn, marge, sinistralité)
  • Explorer une base de 5 à 30 variables numériques avant de choisir des segments
  • Suivre dans le temps le déplacement de clients sur une carte figée

NON

  • Besoin de 4 ou 5 segments simples à expliquer : un K-means est plus direct
  • Visualiser des données très nombreuses et complexes (images, texte vectorisé) : UMAP ou t-SNE donnent souvent une carte plus fidèle
  • Prédire le churn : c'est un modèle supervisé (régression logistique, Random Forest) qu'il faut
  • Données majoritairement catégorielles : préférer une ACM suivie d'une classification
LES 4 RÉGLAGES QUI COMPTENT

Noms donnés pour R (kohonen) et Python (MiniSom). Les variables sont standardisées au préalable.

somgrid(xdim, ydim) / MiniSom(x, y)

Taille de la grille. La règle empirique de Vesanto propose environ 5 x racine du nombre de lignes cases au total, souvent trop pour une lecture métier. Ici 36 cases pour 3 000 clients, soit plus de 80 clients par case en moyenne.

topo / topology

Grille hexagonale ou rectangulaire. L'hexagonale donne six voisins équidistants et des cartes plus lisibles. Elle n'est pas le défaut (rectangulaire dans kohonen comme dans MiniSom) : il faut la demander.

radius / sigma

Rayon du voisinage au départ. Trop petit, la carte ne s'ordonne pas et ressemble à un K-means. Trop grand, tout se moyenne. kohonen le fait décroître automatiquement ; dans MiniSom, sigma est le rayon de départ.

rlen / num_iteration

Durée d'entraînement. En R, rlen compte les passages sur toute la base ; en Python, num_iteration compte les clients présentés. On vérifie que l'erreur de quantification se stabilise.

LE CODE MINIMAL

jeu d'exemple : clients_churn.csv ↓
# Carte de la base abonnés : carte de Kohonen (SOM) en R
library(kohonen)

clients <- read.csv("clients_churn.csv")
X <- cbind(clients[, c("anciennete", "appels_support", "montant", "incidents_3m")],
           mensuel = as.numeric(clients$contrat == "mensuel"),
           deux_ans = as.numeric(clients$contrat == "deux_ans"))
X <- scale(X)   # même échelle pour toutes les variables

set.seed(42)
carte <- som(X, grid = somgrid(xdim = 6, ydim = 6, topo = "hexagonal"), rlen = 200)

# Le churn n'a pas servi à construire la carte : on le projette dessus après coup
clients$neurone <- carte$unit.classif
profil <- aggregate(cbind(churn, anciennete, appels_support) ~ neurone, data = clients, FUN = mean)
profil$clients <- as.vector(table(clients$neurone))
print(round(head(profil[order(-profil$churn), ], 6), 2))

# Carte colorée par taux de churn (neurones vides sans couleur)
taux <- tapply(clients$churn, factor(clients$neurone, levels = 1:36), mean)
plot(carte, type = "property", property = taux, main = "Taux de churn par neurone")

QUESTIONS FRÉQUENTES

Qu'est-ce qu'une carte auto-organisatrice ?

C'est la traduction de Self-Organizing Map (SOM), le réseau de neurones proposé par Teuvo Kohonen au début des années 1980. Elle est dite auto-organisatrice parce qu'aucune étiquette n'est fournie : la grille s'ordonne seule, de sorte que des cases voisines décrivent des données proches.

Quelle différence entre une carte de Kohonen et un K-means ?

Les deux cherchent des profils types. Dans un K-means, les groupes n'ont aucun lien entre eux. Dans une carte de Kohonen, chaque profil est tiré vers ses voisins sur la grille pendant l'entraînement, ce qui donne une carte ordonnée que l'on peut lire et colorer. Avec un voisinage réduit à zéro, l'algorithme se comporte comme un K-means en ligne.

Comment choisir la taille d'une carte de Kohonen ?

La règle empirique de Vesanto propose environ 5 x racine du nombre de lignes cases au total, puis on ajuste. Il faut assez de cases pour voir des nuances, et assez de clients par case pour que les taux calculés, comme un taux de churn, soient fiables. Une case de 5 clients ne permet pas de conclure.

LES ALGOS VOISINS

à comparer avant de choisir
le cousin sans carte

K-means

Même idée de profils types, mais sans lien entre les groupes. Plus simple quand on veut seulement quelques segments.

Voir la fiche →
la carte moderne

UMAP

Projette chaque client en 2D en gardant les voisinages. Plus fidèle sur des données complexes, mais sans cases à nommer.

Voir la fiche →
l'étape suivante

Classification hiérarchique

Souvent appliquée aux profils des cases pour les regrouper en quelques grandes régions de la carte.

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 →