K-means
Fonctions :
-
KMeans()
La fonction KMeans() de sklearn.cluster est utilisée pour effectuer un clustering (ou partitionnement) de données en un nombre k de clusters distincts. Le K-means est un algorithme non supervisé qui partitionne les données en fonction de leur proximité par rapport aux centres des clusters. L'algorithme minimise la somme des distances carrées entre les points de données et les centres des clusters. Chaque point est assigné au cluster dont le centre est le plus proche, et les centres sont recalculés de manière itérative jusqu'à la convergence.
Importation :
from sklearn.cluster import KMeans
Attributs :
Paramètre
Description
n_clusters
Le nombre de clusters à former. Par défaut, c'est 8. init
La méthode pour initialiser les centres des clusters. Peut être 'k-means++' (par défaut) ou un tableau de centres de clusters. n_init
Le nombre de fois que l'algorithme est exécuté avec des centres de départ différents. Par défaut, c'est 10. max_iter
Le nombre maximal d'itérations à effectuer pour trouver les clusters. Par défaut, c'est 300. tol
Le seuil de tolérance sur la convergence. Si la différence entre l'ancienne et la nouvelle valeur du coût est inférieure à ce seuil, l'algorithme s'arrête. random_state
Contrôle l'aléa de l'initialisation des centres des clusters. Si None, l'initialisation est aléatoire. algorithm
Spécifie l'algorithme à utiliser pour effectuer le KMeans. Peut être 'auto', 'full', ou 'elkan'. Par défaut, c'est 'auto'. Exemple de code :
# Importation de KMeans from sklearn.cluster import KMeans import numpy as np # Génération de données aléatoires X = np.random.rand(100, 2) # 100 points en 2 dimensions # Initialisation du modèle KMeans avec 3 clusters kmeans = KMeans(n_clusters=3) # Entraînement du modèle sur les données kmeans.fit(X) # Affichage des centres des clusters print("Centres des clusters :") print(kmeans.cluster_centers_) # Affichage des labels de chaque point (cluster attribué) print("Labels des points :") print(kmeans.labels_) # Prédiction du cluster pour de nouvelles données new_data = np.random.rand(5, 2) # 5 nouveaux points predictions = kmeans.predict(new_data) print("Clusters prédits pour les nouvelles données :") print(predictions)
Explication du code :
from sklearn.cluster import KMeans
importe la classe KMeans du modulesklearn.cluster
, utilisée pour effectuer une classification non supervisée par regroupement (clustering).import numpy as np
importe la bibliothèque NumPy, renommée ici ennp
, utilisée pour le calcul scientifique et la génération de tableaux numériques.Génération de données aléatoires
X = np.random.rand(100, 2)
génère un tableau de 100 points aléatoires dans un espace à 2 dimensions (valeurs comprises entre 0 et 1). Ces points serviront à former les groupes (ou clusters).Initialisation du modèle KMeans
kmeans = KMeans(n_clusters=3)
crée un modèle KMeans qui va regrouper les données en 3 clusters. Le nombre de groupes à former est ici défini manuellement.Entraînement du modèle
kmeans.fit(X)
applique l’algorithme de KMeans aux donnéesX
. Le modèle va : répartir aléatoirement les centres initiaux des clusters, attribuer chaque point au cluster le plus proche (selon la distance euclidienne), recalculer les centres des clusters, répéter jusqu’à convergence.Affichage des centres des clusters
print(kmeans.cluster_centers_)
affiche les coordonnées des centroïdes finaux de chaque cluster, après convergence.Affichage des labels des points
print(kmeans.labels_)
affiche un tableau indiquant pour chaque point deX
à quel cluster (0, 1 ou 2) il a été attribué par le modèle.Prédiction de clusters pour de nouvelles données
new_data = np.random.rand(5, 2)
génère 5 nouveaux points aléatoires en 2 dimensions.predictions = kmeans.predict(new_data)
prédit à quel cluster (parmi les 3 précédemment définis) chaque nouveau point appartient, en fonction de sa distance aux centroïdes appris.print(predictions)
affiche l’index du cluster (0, 1 ou 2) attribué à chaque nouveau point.