Trägheit
Teil des Abschnitts Unüberwachtes Lernen der Machine Learning-Journey von Coddy. Lektion 6 von 51.
In diesem Kapitel geht es darum, k zu wählen. Am Ende wirst du es für die Lieferungen einer Bäckerei auswählen und die Zonen auf einer Karte darstellen:
Zuerst eine Kennzahl. Inertia summiert die quadrierten Abstände jedes Punkts zu seinem eigenen Zentrum: klein, wenn die Punkte dicht an ihren Zentren liegen.
KMeans speichert ihn in inertia_. Für die 180 Äpfel:
for k in [1, 2, 3, 4]:
km = KMeans(n_clusters=k, n_init=10, random_state=0)
km.fit(X)
print(k, round(km.inertia_))Dies wird ausgegeben:
1 1718
2 752
3 230
4 196Mehr Zentren, kürzere Speichen: Die Trägheit nimmt immer ab, wenn k wächst. Bei einem Zentrum pro Punkt beträgt sie 0, daher ist der kleinste Wert nicht der beste.
Aufgabe
EinfachEine Töpferei verpackt Vasen in Kartons, die es in einigen Größen gibt. Jede Vase kommt in den Karton mit der nächstliegenden Größe; die Inertia misst, wie schlecht sie hineinpassen. Das Programm liest budget, also die größte Abweichung, die die Töpferei akzeptiert.
- Probiere k = 1, 2, 3 und so weiter aus: Passe KMeans an
vasesan und gib die Inertia für jedes k gerundet aus. - Stoppe beim ersten k, dessen Inertia innerhalb des Budgets liegt, und gib es aus.
Für eine andere Töpferei:
k = 1, inertia 15120
k = 2, inertia 4811
k = 3, inertia 1290
Box sizes needed: 3Probier es selbst
import numpy as np
from sklearn.cluster import KMeans
# Ändere die folgenden Zeilen nicht
rng = np.random.default_rng(8)
# Vier Arten von Vasen: typische Höhe und Breite in cm sowie die jeweilige Anzahl
kinds = [(15, 8, 25), (38, 13, 25), (22, 22, 20), (58, 26, 10)]
parts = []
for h, w, n in kinds:
parts.append(np.column_stack([rng.normal(h, 2.5, n), rng.normal(w, 2, n)]))
# 80 Vasen, je eine Zeile: Höhe und Breite in cm
vases = np.round(np.concatenate(parts), 1)
# Die größte Abweichung, als Inertia gemessen, die die Töpferei akzeptiert
budget = int(input())
# 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: LieferzonenÜbe selbstständig: Online-Python-Compiler