Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Regroupement par Déplacement de la Moyenne | Algorithmes de Regroupement de Base
Analyse de Cluster
course content

Contenu du cours

Analyse de Cluster

Analyse de Cluster

1. Qu'est-ce Que le Clustering?
2. Algorithmes de Regroupement de Base
3. Comment Choisir le Meilleur Modèle ?

book
Regroupement par Déplacement de la Moyenne

Mean shift est l'algorithme de clustering basé sur la densité le plus simple. En termes simples, "mean shift" équivaut à "déplacement itératif vers la moyenne". Dans l'algorithme, chaque point de données est déplacé vers la "moyenne régionale" étape par étape, et l'emplacement de la destination finale de chaque point représente le cluster auquel il appartient. L'algorithme consiste en les étapes suivantes :

Étape 1. Pour chaque point de données, vous devez créer une fenêtre glissante avec un rayon spécifié (largeur de bande);

Étape 2. Déplacez chacune des fenêtres coulissantes vers des régions de plus haute densité en déplaçant son centroïde vers la moyenne des points de données à l'intérieur de la fenêtre. Cette étape sera répétée jusqu'à ce qu'il n'y ait plus d'augmentation du nombre de points dans la fenêtre coulissante ou que le centroïde cesse de bouger;

Étape 3. Sélection des fenêtres coulissantes par fusion des fenêtres qui se chevauchent. Lorsque plusieurs fenêtres se chevauchent, la fenêtre contenant le plus de points est conservée, et les autres sont fusionnées avec elle;

Étape 4. Assignez les points de données à la fenêtre coulissante où ils se trouvent. Si le point de données est en dehors de la fenêtre, assignez-le à la fenêtre la plus proche.

Le décalage moyen déplace les fenêtres vers une région de densité plus élevée en déplaçant leur centroïde (centre de la fenêtre coulissante) vers la moyenne des points de données à l'intérieur de la fenêtre coulissante.

Ainsi, l'algorithme de décalage moyen est très similaire à l'algorithme des K-means : il fonctionne également sur la moyenne des points et ne peut fonctionner que sur des clusters isolés. Mais il y a une différence significative : l'algorithme n'a pas besoin de définir manuellement le nombre de clusters.

Regardons l'exemple d'utilisation du clustering par décalage moyen en Python :

123456789101112131415
from sklearn.cluster import MeanShift import numpy as np import matplotlib.pyplot as plt from sklearn.datasets import make_blobs, make_moons # Create dataset for clustering X, y = make_blobs(n_samples=500, cluster_std=1, centers=4 ) transformation = [[0.6, -0.6], [-0.4, 0.8]] X_aniso = np.matmul(X, transformation) # Train Mean Shift model on blobs dataset and visualize the results blobs_clustering = MeanShift(bandwidth=2).fit(X_aniso) fig, axes = plt.subplots(1, 2) axes[0].scatter(X[:, 0], X[:, 1], c=blobs_clustering.labels_, s=50, cmap='tab20b') axes[0].set_title('Clustered anizo blobs data') axes[1].scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='tab20b') axes[1].set_title('Real anizo blobs data')
copy

Voyons comment l'algorithme de décalage moyen va gérer le jeu de données des lunes :

12345678910111213
from sklearn.datasets import make_moons import matplotlib.pyplot as plt from sklearn.cluster import MeanShift # Create moons dataset for clustering X, y = make_moons(n_samples=500) # Fit Mean Shift model on moons dataset and visualize the results moons_clustering = MeanShift(bandwidth=0.7).fit(X) fig,axes = plt.subplots(1,2) axes[0].scatter(X[:, 0], X[:, 1], c=moons_clustering.labels_, s=50, cmap='tab20b') axes[0].set_title('Clustered moons data') axes[1].scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='tab20b') axes[1].set_title('Real moons data')
copy

Dans le code ci-dessus, nous utilisons la classe MeanShift pour créer le modèle : le paramètre bandwidth définit le rayon dans lequel la valeur moyenne est calculée.

Remarque

Dans la classe MeanShift, vous pouvez utiliser la méthode .predict() pour faire des prédictions basées sur un modèle déjà entraîné.

Quelle est la principale différence entre les algorithmes de clustering K-means et Mean shift ?

Quelle est la principale différence entre les algorithmes de clustering K-means et Mean shift ?

Sélectionnez la réponse correcte

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 5
We're sorry to hear that something went wrong. What happened?
some-alt