Accueil / Factory / Algos ML / K-medoids (PAM) — factory / algos ML / apprentissage non supervisé

K-MEDOIDS (PAM).

Un cousin de K-means dont chaque centre est un individu réel de la base, le médoïde, et non une moyenne abstraite. Il accepte n'importe quelle distance, y compris sur des données qui mélangent chiffres et catégories, et résiste mieux aux valeurs extrêmes.

ClusteringMédoïdesDonnées mixtesNon superviséNiveau : intermédiaire

FICHE D'IDENTITÉ

notes sur 5 · usage entreprise
PerformanceGroupes comparables à K-means, plus robustes aux extrêmes
InterprétabilitéChaque groupe est incarné par un individu réel
VitesseMatrice de distances : lent au-delà de 10 000 lignes environ
Facilité de réglageLe nombre de groupes et la distance restent à choisir
Tolérance aux données brutesExtrêmes peu gênants, données mixtes via Gower
EN 30 SECONDES

Pour représenter chaque région lors d'un test, on ne choisit pas un « magasin moyen » qui n'existe pas. On choisit le vrai magasin qui ressemble le plus à tous les autres de sa région.

1. On calcule toutes les distances deux à deux

Entre chaque paire de magasins. La distance de Gower traite les chiffres (écart rapporté à l'étendue) et les catégories (même zone ou non) dans une même échelle de 0 à 1.

2. On choisit k médoïdes de départ

La phase BUILD de PAM ajoute un à un les individus qui réduisent le plus la distance totale de chacun à son médoïde le plus proche.

3. On teste les échanges

La phase SWAP essaie de remplacer un médoïde par un autre individu. Si la distance totale baisse, l'échange est gardé. On s'arrête quand plus aucun échange n'améliore le résultat.

LE CAS MÉTIER

test & learn · retail / réseaux d'agences
EN ENTRÉE

Une ligne par magasin, chiffres et catégories

Surface, budget publicitaire local, nombre de concurrents, chiffre d'affaires et zone d'implantation. La zone est une catégorie : K-means ne sait pas la traiter sans bricolage.

EN SORTIE

6 magasins pilotes, chacun représentant un groupe

La direction réseau teste une nouvelle opération dans ces 6 magasins réels. Chacun est le plus représentatif de son groupe, et le résultat se transpose au groupe entier.

CE QU'ON MESURE

Des groupes qui ont un sens réseau

La silhouette moyenne mesure la séparation des groupes. Avec Gower, la zone pèse lourd : les groupes se forment d'abord par zone, puis par format. Vérifiez que ce découpage correspond à une réalité terrain avant de lancer le test.

QUAND LE SORTIR, QUAND L'ÉVITER

OUI

  • Besoin d'un représentant réel par groupe : client type, magasin pilote, produit phare
  • Données mixtes (chiffres et catégories) avec la distance de Gower
  • Présence de valeurs extrêmes qui tireraient une moyenne
  • Distance métier spécifique : temps de trajet, similarité de parcours, distance entre textes

NON

  • Plus de quelques dizaines de milliers de lignes : la matrice des distances explose, utiliser CLARA ou K-means
  • Groupes de formes irrégulières ou bruit à isoler : DBSCAN ou HDBSCAN
  • Besoin d'un profil moyen à présenter : K-means donne directement les moyennes
  • Catégorielles dominantes qu'on ne veut pas voir écraser le reste : pondérer les variables ou tester K-prototypes
LES 3 CHOIX QUI COMPTENT

Noms donnés pour R (cluster::pam) et Python (paquet kmedoids).

k / n_clusters

Le nombre de groupes. La silhouette moyenne aide à le choisir ; ici, un besoin métier (6 magasins pilotes) peut aussi le fixer. Tester plusieurs valeurs reste indispensable.

La distance

Euclidienne pour des chiffres standardisés, Manhattan pour limiter l'effet des extrêmes, Gower pour des données mixtes (daisy en R). C'est le choix qui change le plus le résultat.

pamonce / method

PAM exact convient jusqu'à quelques milliers de lignes. Les variantes accélérées (FasterPAM, défaut du paquet Python ; argument pamonce en R) vont bien plus vite. CLARA, en R, travaille sur des échantillons pour les grandes bases.

LE CODE MINIMAL

jeu d'exemple : magasins.csv ↓
# Magasins pilotes : K-medoids (PAM) en R
library(cluster)

magasins <- read.csv("magasins.csv")
magasins$zone <- factor(magasins$zone)
variables <- c("surface_m2", "budget_pub_k", "nb_concurrents", "zone", "ca_k")

# Distance de Gower : écart rapporté à l'étendue pour les chiffres, 0 ou 1 pour la zone
distances <- daisy(magasins[, variables], metric = "gower")

# PAM : 6 groupes, chacun représenté par un vrai magasin, le médoïde
modele <- pam(distances, k = 6, diss = TRUE)
magasins$groupe <- modele$clustering

# Les 6 magasins pilotes et la composition des groupes
print(magasins[modele$id.med, ])
print(table(groupe = magasins$groupe, zone = magasins$zone))
cat("Silhouette moyenne :", round(modele$silinfo$avg.width, 3), "\n")

QUESTIONS FRÉQUENTES

Quelle différence entre K-means et K-medoids ?

K-means représente chaque groupe par la moyenne de ses membres, un point qui n'existe pas forcément. K-medoids le représente par un membre réel, celui qui est le plus proche de tous les autres. K-medoids accepte toute distance et résiste mieux aux extrêmes, mais il est plus lent.

Qu'est-ce que la distance de Gower ?

Une distance pour données mixtes. Pour une variable numérique, elle calcule l'écart divisé par l'étendue de la variable ; pour une catégorie, elle vaut 0 si les deux individus sont dans la même modalité, 1 sinon. On fait ensuite la moyenne sur toutes les variables.

Que signifie PAM ?

Partitioning Around Medoids, l'algorithme proposé par Kaufman et Rousseeuw. Il construit d'abord des médoïdes de départ (BUILD), puis teste des échanges entre médoïdes et autres points (SWAP) tant que la distance totale diminue.

LES ALGOS VOISINS

à comparer avant de choisir
plus rapide

K-means

Les centres sont des moyennes. Très rapide sur de gros volumes, mais sensible aux extrêmes et limité aux données numériques.

Voir la fiche →
pour les données mixtes

K-prototypes

Mélange moyennes pour les chiffres et modes pour les catégories. Tient mieux les gros volumes que PAM.

Voir la fiche →
sur la même matrice

Classification hiérarchique

Utilise la même matrice de distances et montre tous les niveaux de regroupement dans un arbre.

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 →