Dendrogramme
Teil des Abschnitts Unüberwachtes Lernen der Machine Learning-Journey von Coddy. Lektion 18 von 51.
Der einleitende Baum des Kapitels ist ein Dendrogramm. Jede Klammer verbindet zwei Gruppen auf der Höhe, an der sie zusammengeführt wurden: Je länger ihre Schenkel sind, desto weiter lagen die Gruppen auseinander.
Schneide ihn mit einer Linie, und jeder Ast, den die Linie kreuzt, wird zu einer Gruppe. Hier sind es 4:
scipy erstellt den Baum, zeichnet ihn und schneidet ihn mit fcluster:
from scipy.cluster.hierarchy import linkage, dendrogram, fcluster
Z = linkage(scaled, "ward")
dendrogram(Z, labels=names, leaf_rotation=90, color_threshold=1.2, ax=ax)
ax.axhline(1.2, color="gray", linestyle="--")
groups = fcluster(Z, t=1.2, criterion="distance")
print(groups)Dies gibt eine Gruppennummer pro Ball aus, nur für den Basketball:
[2 2 2 1 1 1 3 3 3 4]Schneide die längsten Beine: Die Gruppen unten liegen weit auseinander.
Aufgabe
MittelEin Meeresführer gruppiert 16 Wale und Delfine nach Länge, Gewicht und Tauchtiefe. Das Startgerüst skaliert sie und liest die Schnitthöhe cut ein.
- Erstelle den Ward-Baum
Zund zeichne ihn aufax: Tiernamen um 90 Grad gedreht, Farben enden an der Schnittlinie. - Zeichne die Schnittlinie als graue gestrichelte Linie und zeige sie dann an.
- Gib die Anzahl der Gruppen aus.
Für 11 Früchte und einen Schnitt bei 3.5:
Cut at 3.5: 3 groupsCoddy beschreibt deinen Baum.
Probier es selbst
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.preprocessing import StandardScaler
from scipy.cluster.hierarchy import linkage, dendrogram, fcluster
# 16 Wale und Delfine: Körperlänge (m), Gewicht (Tonnen), tiefster Tauchgang (m)
whales = pd.read_csv("whales.csv")
names = list(whales["animal"])
scaled = StandardScaler().fit_transform(whales[["length_m", "weight_t", "dive_m"]])
cut = float(input())
fig, ax = plt.subplots()
fig.subplots_adjust(bottom=0.3) # Platz für die Namen unter dem Baum
ax.set_title("Whales and Dolphins")
ax.set_ylabel("Merge height")
# 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