K-Means Clustering
Découvre le clustering K-Means pour l’apprentissage non supervisé. Découvre comment cet algorithme partitionne les données, améliore les applications d’IA et informe les modèles comme Ultralytics YOLO26.
Le clustering K-Means est un algorithme fondamental et largement utilisé dans le domaine de l’apprentissage non supervisé, conçu pour révéler des structures cachées au sein de données non étiquetées. Son objectif principal est de partitionner un jeu de données en sous-groupes distincts, appelés clusters, de sorte que les points de données d’un même groupe soient aussi similaires que possible, tandis que ceux de groupes différents soient distincts. En tant que pilier de l’exploration de données et de l’analyse exploratoire, K-Means permet aux data scientists d’organiser automatiquement des informations complexes en catégories faciles à gérer, sans avoir besoin d’étiquettes prédéfinies ni de supervision humaine.
Fonctionnement de l’algorithme#
Le fonctionnement de K-Means est itératif et repose sur des métriques de distance pour déterminer le regroupement optimal des données d’entraînement. L’algorithme organise les éléments en K clusters, chaque élément appartenant au cluster dont la moyenne, ou centroïde, est la plus proche. Ce processus minimise la variance au sein de chaque groupe. Le processus suit généralement les étapes suivantes :
-
Initialisation : L’algorithme sélectionne K points initiaux comme centroïdes. Ceux-ci peuvent être choisis aléatoirement ou à l’aide de méthodes optimisées comme k-means++ afin d’accélérer la convergence.
-
Affectation : Chaque point de données du jeu de données est affecté au centroïde le plus proche selon une métrique de distance donnée, le plus souvent la distance euclidienne.
-
Mise à jour : Les centroïdes sont recalculés en prenant la moyenne de tous les points de données affectés à ce cluster.
-
Itération : Les étapes 2 et 3 sont répétées jusqu’à ce que les centroïdes ne se déplacent plus de manière significative ou qu’un nombre maximal d’itérations soit atteint.
Déterminer le nombre correct de clusters (K) est un aspect essentiel de l’utilisation de cet algorithme. Les praticiens utilisent souvent des techniques comme la méthode du coude ou analysent le score de silhouette pour évaluer la séparation des clusters obtenus.
Applications concrètes dans l'IA#
Le clustering K-Means est très polyvalent et trouve des applications dans divers secteurs pour simplifier les données et effectuer le prétraitement des données.
- Compression d’images et quantification des couleurs : En vision par ordinateur (CV), K-Means aide à réduire la taille des fichiers image en regroupant les couleurs des pixels. En regroupant des milliers de couleurs en un ensemble plus restreint de couleurs dominantes, l’algorithme effectue efficacement une réduction de la dimensionnalité tout en préservant la structure visuelle de l’image. Cette technique est souvent utilisée avant l’entraînement de modèles avancés de détection d’objets afin de normaliser les données d’entrée.
- Segmentation de la clientèle : Les entreprises utilisent le clustering pour regrouper les clients en fonction de leur historique d’achat, de leurs caractéristiques démographiques ou de leur comportement sur leur site web. Cela permet de mettre en place des stratégies marketing ciblées, un élément clé des solutions d’IA dans le commerce de détail. En identifiant les acheteurs à forte valeur ou les risques d’attrition, les entreprises peuvent adapter efficacement leurs messages.
- Détection d’anomalies : En apprenant la structure des clusters de données « normales », les systèmes peuvent identifier les valeurs aberrantes qui se trouvent loin de tout centroïde. Cette approche est utile pour détecter les fraudes dans le secteur financier et les anomalies dans la sécurité des réseaux, en aidant à signaler les activités suspectes qui s’écartent des schémas habituels.
- Génération de boîtes d’ancrage : Historiquement, les détecteurs d’objets comme les anciennes versions de YOLO utilisaient K-Means pour calculer des boîtes d’ancrage optimales à partir de jeux de données d’entraînement. Alors que les modèles modernes comme YOLO26 utilisent des méthodes avancées sans ancres, comprendre K-Means reste pertinent pour appréhender l’évolution des architectures de détection.
Exemple d’implémentation#
Bien que des frameworks d’apprentissage profond comme la Plateforme Ultralytics prennent en charge des pipelines d’entraînement complexes, K-Means est souvent utilisé pour analyser les statistiques des jeux de données. L’extrait Python suivant montre comment regrouper des coordonnées 2D — simulant des centroïdes d’objets — à l’aide de la bibliothèque populaire Scikit-learn.
import numpy as np
from sklearn.cluster import KMeans
# Simulated coordinates of detected objects (e.g., from YOLO26 inference)
points = np.array([[10, 10], [12, 11], [100, 100], [102, 101], [10, 12], [101, 102]])
# Initialize K-Means to find 2 distinct groups (clusters)
kmeans = KMeans(n_clusters=2, random_state=0, n_init="auto").fit(points)
# Output the cluster labels (0 or 1) for each point
print(f"Cluster Labels: {kmeans.labels_}")
# Output: [1 1 0 0 1 0] -> Points near (10,10) are Cluster 1, near (100,100) are Cluster 0Comparaison avec des algorithmes apparentés#
Il est important de distinguer K-Means des autres algorithmes aux noms ou aux fonctions similaires afin de choisir l’outil adapté à un projet.
- K-Means ou voisins des k plus proches (KNN) : Ces deux algorithmes sont souvent confondus en raison du « K » dans leur nom. K-Means est un algorithme non supervisé utilisé pour le clustering de données non étiquetées. En revanche, les voisins des k plus proches (KNN) constituent un algorithme d’apprentissage supervisé utilisé pour la classification d’images et la régression, qui s’appuie sur des données étiquetées pour effectuer des prédictions selon la classe majoritaire des voisins.
- K-Means ou DBSCAN : Bien que les deux algorithmes regroupent des données, K-Means suppose que les clusters sont sphériques et exige que leur nombre soit défini à l’avance. DBSCAN regroupe les données en fonction de leur densité, peut détecter des clusters de formes arbitraires et gère mieux le bruit. DBSCAN est donc supérieur pour les données spatiales complexes présentes dans des jeux de données aux structures irrégulières, lorsque le nombre de clusters est inconnu.









