Wann K-Means scheitert
Teil des Abschnitts Unüberwachtes Lernen der Machine Learning-Journey von Coddy. Lektion 14 von 51.
K-means stellt sich jeden Cluster als runde Wolke um seinen Mittelpunkt vor. Die Darts bilden eine Zielscheibe mit einem Ring darum, und K-means teilt sie in zwei Hälften:
Jeder Punkt wird seinem nächstgelegenen Zentrum zugeordnet, sodass die Grenze zwischen zwei Clustern eine gerade Linie genau auf halbem Weg zwischen den Zentren ist. Keine gerade Linie trennt einen Ring von seiner Mitte.
Lange, gekrümmte oder sehr ungleichmäßige Gruppen bringen k-means auf dieselbe Weise an seine Grenzen. Es gibt trotzdem Cluster zurück, also sieh dir immer die Darstellung an.
Aufgabe
MittelEine Drohne entdeckte 200 Robben auf zwei gebogenen Sandbänken. Das Startgerüst zeigt die tatsächliche Verteilung im left-Diagramm.
- Gruppiere die Robben mit k-means, k = 2.
- Stelle im
right-Diagramm jeden Cluster als Streudiagramm dar und beschrifte ihn mitcluster 0odercluster 1. - Markiere die Zentren mit schwarzen
"X"-Markierungen und beschrifte sie mitcenters. Füge eine Legende hinzu und zeige das Diagramm an.
Coddy beschreibt dein Diagramm und zählt die Robben, die ihrer jeweiligen Sandbank zugeordnet wurden. So sieht es bei zwei Gruppen aus:
Probier es selbst
import matplotlib.pyplot as plt
from sklearn.datasets import make_moons
from sklearn.cluster import KMeans
# 200 Robben ruhen auf zwei gekrümmten Sandbänken, aus einer Drohne betrachtet (Positionen in 100 m)
X, sandbar = make_moons(n_samples=200, noise=0.07, random_state=4)
# Zeichnet die tatsächlichen Sandbänke auf ax
def draw_truth(ax):
ax.scatter(X[sandbar == 0, 0], X[sandbar == 0, 1], s=12, label="north bar")
ax.scatter(X[sandbar == 1, 0], X[sandbar == 1, 1], s=12, label="south bar")
ax.set_title("The truth")
ax.legend()
fig, (left, right) = plt.subplots(1, 2, figsize=(9, 4))
draw_truth(left)
right.set_title("K-means, k = 2")
# Schreibe deinen Code unten
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Unüberwachtes Lernen
1Gruppen finden
Lernen ohne LabelsÄhnlichkeit messenK-Means von HandK-Means mit scikit-learnRückblick: Fitnessstudiomitglieder4Hierarchisches Clustering
Schrittweises ZusammenführenAgglomerative ModelleDendrogrammeZusammenfassung: Hunderassen7PCA in der Praxis
64 Dimensionen sehenKomponenten als MusterKomprimieren und rekonstruierenPCA vor einem ModellRückblick: Gesichtsscanner10Projekt: Ziffern erkunden
Die Ziffern ansehenMit PCA verkleinernDie Ziffern gruppierenDie Gruppen benennenDie Ausreißer finden2k wählen
TrägheitDie Elbow-MethodeSilhouettenwerteVor dem Clustering skalierenRückblick: Lieferzonen3Cluster interpretieren
Cluster analysierenZentren in realen EinheitenCluster vs. bekannte LabelsWann K-Means scheitertRückblick: Tee verkostenÜbe selbstständig: Online-Python-Compiler