Die Gruppen benennen
Teil des Abschnitts Unüberwachtes Lernen der Machine Learning-Journey von Coddy. Lektion 46 von 51.
Cluster haben Zahlen, keine Namen. Jetzt kannst du die Bezeichnungen verwenden: Eine Kreuztabelle zählt, welche Ziffern in jedem Cluster gelandet sind, wie diese 1er, 7er und 9er in 3 Clustern:
Benenne jeden Cluster nach seiner häufigsten Ziffer. Die Scans dieser Ziffer zählen als richtig zugeordnet:
ct = pd.crosstab(km.labels_, y)
names = ct.idxmax(axis=1) # die größte Spalte jeder Zeile
right = ct.max(axis=1).sum()
print(names.tolist(), right)Dies gibt [9, 7, 1] 496 aus: 496 von 541 Scans wurden von Gruppen ohne einziges Label als rechts bezeichnet.
Aufgabe
MittelBenenne deine 10 Cluster. Im Startercode ist km enthalten, das ohne Labels trainiert wurde; jetzt darfst du die Ziffern in y verwenden.
- Erstelle eine Kreuztabelle der Cluster gegen
yund benenne jedes Cluster nach der Ziffer, die darin am häufigsten vorkommt. - Gib die Cluster in der Reihenfolge ihrer Namen aus: die Anzahl der Scans, die korrekt benannt wurden, ihre Größe und ihren korrekt benannten Anteil als ganze Prozentzahl.
- Gib insgesamt die Anzahl der korrekt benannten Scans aus, den Prozentwert mit 1 Dezimalstelle.
Für 5 Cluster:
Cluster named 0: 175 of 177 scans (99%)
Cluster named 2: 160 of 367 scans (44%)
Cluster named 3: 168 of 531 scans (32%)
Cluster named 6: 179 of 359 scans (50%)
Cluster named 7: 176 of 363 scans (48%)
Named right without labels: 858 of 1797 scans (47.7%)Welches deiner Cluster ist am schwächsten, und was verbirgt sich darin?
Probier es selbst
import pandas as pd
from sklearn.datasets import load_digits
from sklearn.decomposition import PCA
from sklearn.cluster import KMeans
# Aus „Schau dir die Ziffern an“: 1,797 Scans mit 64 Pixeln, Tintenwerte von 0 bis 16
digits = load_digits()
X = digits.data
y = digits.target
# Aus „Mit PCA verkleinern“: 80% der Varianz in 13 Zahlen pro Scan
pca = PCA(n_components=0.8)
X_small = pca.fit_transform(X)
# Aus „Die Ziffern clustern“: 10 Cluster, ohne Labels gefunden
km = KMeans(n_clusters=10, n_init=10, random_state=0).fit(X_small)
# 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