k-means, comment ça marche?

k-means


Le k-means est l’algorithme de clustering le plus simple. Il permet de réaliser des analyses non supervisées, de regrouper les individus ayant des caractéristiques similaires. C’est surement la méthode la plus connue et bien souvent quand on doit créer des groupes d’individus on commence par le k-means. Nous allons voir quels sont les avantages et les inconvénients du k-means, quand l’utiliser avec des explications simples sur son fonctionnement.

Le k-means c’est quoi ?

En français ça donne k-moyennes, il s’agit donc d’un algorithme de machine learning de la catégorie des méthodes non supervisées. Il ne permet donc pas de prédire un résultats mais au contraire de regrouper des individus sans à priori.

C’est à dire qu’à partir de vos données, l’algorithme va chercher à créer des groupes d’individus homogènes :

  • Des groupes dans lesquels les individus se ressemblent
  • Des groupes qui se distinguent le plus possible les uns des autres

Le cas d’usage le plus classique pour les méthodes de clustering c’est la segmentation client. On peut aussi les utiliser de manière plus descriptive pour comprendre et synthétiser une population. En revanche, pour construire une segmentation client robuste, avec plusieurs axes je vous recommande plutôt d’utiliser la classifiation ascendante hiérarchique ou la méthode mixte.

Quels sont les avantages et les inconvénients ?

Avantages

  • Faibles temps de calcul : le k-means n’est pas une méthode de clustering hiérarchique. Comparé à d’autres méthodes, les temps de calcul sont donc bien plus faibles. Concrètement il peut donc être utilisé sur des volumes de données importants.
  • Facile à comprendre : je vous explique son fonctionnement juste après et comme vous le verrez c’est très intuitif.
  • Disponible dans la majorité des outils : k-means est l’algorithme le plus répandu. Vous le trouverez évidemment dans vos outils de Data Science (R, Python, DSS, Spark,…) mais aussi dans certains outils BI (Tableau Software par exemple).

Inconvenients

  • Choix du nombre de groupes : vous devez choisir le nombre de groupes à créer avant de lancer l’algorithme des k-means. C’est vraiment un inconvénient par rapport aux méthodes hiérarchiques qui aident au choix du nombre de groupes en fonction des données.
  • Pas de cohérence entre 2 exécutions : si vous exécutez 2 fois un algorithme des k-moyennes sur vos données vous obtiendrez 2 résultats différents. Pourquoi ? Parce que le point de départ de l’algorithme c’est le tirage aléatoire des centres des groupes. Donc si vous tirez aléatoirement de nouvelles données, les résultats seront différents.

Quand utiliser le k-means ?

Vous devez calculer un clustering et vous vous demandez si le k-means pourrait répondre à votre problématique ? Je vous le conseille dans les cas suivants :

  • Utilisez un k-means pour regrouper rapidement des individus, pour structurer vos données. Ca peut être le cas par exemple dans une analyse descriptive. Vous analysez la rentabilité de vos clients, vous voyez qu’il existe des différences assez importantes entre les clients les plus rentables et les moins rentables ? Dans ce cas un k-means va vous permettre de créer rapidement des groupes de clients en fonction de leur rentabilité et vous y verrez plus clair.
  • Utiliser un k-means quand le dataset à segmenter est trop volumineux pour une méthode hiérarchique. Si les données à segmenter sont trop importantes les méthodes hiérarchiques comme la Classification Ascendante Hiérarchique ne peuvent pas être utilisées. Dans ce cas on combine k-means et CAH (ça s’appelle la méthode mixte) pour avoir un bon compromis entre performance et rapidité de calcul.
  • Utiliser un k-means pour visualiser rapidement des groupes d’individus. Enfin pour finir, je vous conseille d’utiliser un k-means dans les outils de visualisation lorsque la méthode est disponible pour visualiser rapidement les groupes qui existent. C’est visuel et ça parle à tout le monde.

Comment fonctionne l’algorithme ?

Regardons de plus près comment ça marche :

Comment préparer ses données avant un k-means ?

Comme toujours, avant d’utiliser un algorithme, il est nécessaire de préparer ses données.

Le k-means s’utilise sur des données quantitatives uniquement. Si vos données comportent des variables qualitatives que vous souhaitez utiliser vous pourrez soit les convertir en dummy soit passer par une ACM. Si vous choisissez la 2e option vous utiliserez alors les axes de l’ACM comme nouvelles données. Mais bon honnêtement comme souvent on utilise le k-means pour aller vite je vous conseille plutôt l’option 1.

Gardez un oeil sur les variables extrêmes. Si certaines sont aberrantes il faudra les supprimer ou les corriger.

L’algorithme k-means

Avant de se lancer il faut déterminer le nombre de cluster que l’on souhaite obtenir.

Prenons un exemple simple avec une base de 10 clients pour lesquels on connait l’ancienneté et le panier moyen. On souhaite créer 3 groupes en utilisant la méthode des k-means.

Voilà comment fonctionne l’algorithme :

Etape 0 : Initialisation

On tire aléatoirement 3 individus. Ces 3 individus correspondent aux centres initiaux des 3 classes.

Etape 1 :

On calcule la distance entre les individus et chaque centre. Plusieurs métriques existent pour définir la proximité entre 2 individus. La méthode “classique” se base sur la distance euclidienne, vous pouvez aussi utiliser la distance Manhattan ou Minkowski.

Etape 2 :

On affecte chaque individu au centre le plus proche.

Etape 3 :

On calcule les centres de gravité des groupes qui deviennent les nouveaux centres

Boucle itérative :

On recommence les étapes 1, 2 et 3 tant que les individus sont réaffectés à de nouveaux groupes après une itération.

6 réflexions sur “k-means, comment ça marche?”

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *