Vor dem Clustering skalieren
Teil des Abschnitts Unüberwachtes Lernen der Machine Learning-Journey von Coddy. Lektion 9 von 51.
K-means gruppiert nach Abstand, daher geben die größten Einheiten den Ausschlag. Tierheimkatzen nach Gewicht in Gramm und Alter in Jahren: Ein Abstand von 500 g übertrumpft einen von 10 Jahren.
Standardisiere zuerst wie bei k-NN, damit jedes Merkmal gleich gewichtet wird:
X_scaled = StandardScaler().fit_transform(X)
km = KMeans(n_clusters=3, n_init=10, random_state=0)
km.fit(X_scaled)make_pipeline(StandardScaler(), KMeans(...)) erledigt beides in einem Modell. Lies anschließend jede Gruppe in realen Einheiten aus: Bilde den Durchschnitt ihrer ursprünglichen Zeilen, X[km.labels_ == c].mean(axis=0).
Aufgabe
EinfachEine Wohnungssuch-App gruppiert 100 Inserate nach Miete und Entfernung zum Bahnhof. Die Ausgangslösung clustert die Rohspalten, und ihre Gruppen liegen alle etwa 3 km entfernt: Dollarwerte überdecken Kilometer.
- Skaliere die beiden Spalten mit einem
StandardScaler. - Cluster stattdessen die skalierten Zeilen. Behalte die Ausgabe bei: Sie liest jede Gruppe in realen Einheiten aus.
Für eine andere Stadt:
38 flats: $1820 a month, 0.9 km out
33 flats: $1130 a month, 4.2 km out
29 flats: $2760 a month, 1.5 km outProbier es selbst
import pandas as pd
from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler
# Eine Zeile pro Wohnung: Monatsmiete in Dollar, Entfernung zum Bahnhof in km
flats = pd.read_csv("flats.csv")
X = flats[["rent", "station_km"]]
# Das gruppiert die unskalierten Spalten: Korrigiere es
km = KMeans(n_clusters=3, n_init=10, random_state=0)
km.fit(X)
# Gib jede Gruppe in tatsächlichen Einheiten aus, die größte zuerst
sizes = pd.Series(km.labels_).value_counts()
for c in sizes.index:
group = flats[km.labels_ == c]
print(f"{sizes[c]} flats: ${round(group['rent'].mean())} a month, {group['station_km'].mean():.1f} km out")
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: LieferzonenÜbe selbstständig: Online-Python-Compiler