Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Mean-Shift-Clustering | Grundlegende Clustering-Algorithmen
Clusteranalyse
course content

Kursinhalt

Clusteranalyse

Clusteranalyse

1. Was Ist Clustering?
2. Grundlegende Clustering-Algorithmen
3. Wie Wählt Man das Beste Modell Aus?

book
Mean-Shift-Clustering

Mean Shift ist der einfachste dichtebasierte Clustering-Algorithmus. Einfach ausgedrückt bedeutet "Mean Shift" "iteratives Verschieben zum Mittelwert". Im Algorithmus wird jeder Datenpunkt Schritt für Schritt zum "regionalen Mittelwert" verschoben, und der Ort des endgültigen Ziels jedes Punktes repräsentiert das Cluster, zu dem er gehört. Der Algorithmus besteht aus den folgenden Schritten:

Schritt 1. Für jeden Datenpunkt müssen Sie ein verschiebbares Fenster mit einem bestimmten Radius (Bandbreite) erstellen;

Schritt 2. Verschieben Sie jedes der Schiebefenster in Richtung höherer Dichtebereiche, indem Sie dessen Schwerpunkt auf den Mittelwert der Datenpunkte innerhalb des Fensters verschieben. Dieser Schritt wird wiederholt, bis es keine Zunahme der Anzahl der Punkte im Schiebefenster mehr gibt oder der Schwerpunkt sich nicht mehr bewegt;

Schritt 3. Auswahl der Schiebefenster durch Zusammenführen überlappender Fenster. Wenn mehrere Fenster überlappen, wird das Fenster mit den meisten Punkten beibehalten und die anderen werden mit ihm zusammengeführt;

Schritt 4. Weisen Sie die Datenpunkte dem Schiebefenster zu, in dem sie sich befinden. Wenn sich der Datenpunkt außerhalb des Fensters befindet, weisen Sie ihn dem nächstgelegenen Fenster zu.

Mean Shift verschiebt die Fenster in eine Region höherer Dichte, indem es deren Schwerpunkt (Mittelpunkt des verschiebbaren Fensters) auf den Mittelwert der Datenpunkte innerhalb des verschiebbaren Fensters verschiebt.

Der Mean Shift-Algorithmus ist dem K-Means-Algorithmus sehr ähnlich: Er arbeitet ebenfalls mit dem Mittelwert der Punkte und kann nur auf isolierten Clustern arbeiten. Aber es gibt einen wesentlichen Unterschied: Der Algorithmus muss die Anzahl der Cluster nicht manuell festlegen.

Schauen wir uns ein Beispiel für die Verwendung von Mean Shift Clustering in Python an:

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

Lassen Sie uns überprüfen, wie der Mean Shift-Algorithmus mit dem Moons-Datensatz umgeht:

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

Im obigen Code verwenden wir die MeanShift-Klasse, um das Modell zu erstellen: Der bandwidth-Parameter definiert den Radius, innerhalb dessen der Durchschnittswert berechnet wird.

Hinweis

In der MeanShift-Klasse können Sie die Methode .predict() verwenden, um Vorhersagen basierend auf einem bereits trainierten Modell zu treffen.

Was ist der Hauptunterschied zwischen den K-means- und Mean Shift-Clustering-Algorithmen?

Was ist der Hauptunterschied zwischen den K-means- und Mean Shift-Clustering-Algorithmen?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

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