Cluster-Labels in der hierarchischen Clusterbildung

Unsupervised Learning in Python

Benjamin Wilson

Director of Research at lateral.io

Cluster-Labels in der hierarchischen Clusterbildung

  • Nicht nur ein Tool zum Visualisieren!
  • Cluster-Labels können in jeder Zwischenstufe wiederhergestellt werden.
  • Zum Beispiel für Kreuztabellen

Eurovision hierarchisches Clustering

Unsupervised Learning in Python

Clustering auf Zwischenstufen & Höhe im Dendrogramm

  • Beispiel bei Höhe 15:
    • Bulgarien, Zypern und Griechenland bilden ein Cluster.
    • Russland und Moldawien sind ein weiteres Beispiel.
    • Armenien in einem separaten Cluster

Vergrößerter Cluster mit einer horizontalen Linie in Höhe 15

Unsupervised Learning in Python

Dendrogramme zeigen Cluster-Abstände

  • Höhe im Dendrogramm = Abstand zwischen zusammengeführten Clustern
  • Zum Beispiel hatten Cluster, die nur Zypern und Griechenland umfassten, einen Abstand von ungefähr 6.

Vergrößerte Ansicht mit hervorgehobenem Cluster Zypern/Griechenland

Unsupervised Learning in Python

Dendrogramme zeigen Cluster-Abstände

  • Höhe im Dendrogramm = Abstand zwischen zusammengeführten Clustern
  • Zum Beispiel hatten Cluster, die nur Zypern und Griechenland umfassten, einen Abstand von ungefähr 6.
  • Dieses neue Cluster hat circa den Abstand 12 vom Cluster, welches ausschließlich Bulgarien enthält.

Vergrößerte Ansicht mit den Clustern Zypern/Griechenland und Zypern/Griechenland/Bulgarien

Unsupervised Learning in Python

Clustering auf Zwischenstufen & Höhe im Dendrogramm

  • Die Höhe im Dendrogramm gibt den maximalen Abstand zwischen zusammengeführten Clustern an.
  • Führe Cluster, die weiter auseinander liegen, nicht zusammen (z. B. 15)

Vergrößerter Cluster mit horizontaler Linie in Höhe 15

Unsupervised Learning in Python

Distanz zwischen den Clustern

  • Definiert durch eine „linkage method“
  • Bei „complete linkage“ : Der Abstand zwischen den Clustern ist der maximale Abstand zwischen ihren Stichproben.
  • Über den Methodenparameter angegeben, z. B. linkage(samples, method="complete")
  • Unterschiedliche linkage-Methoden, unterschiedliche hierarchische Clusterbildung!
Unsupervised Learning in Python

Cluster-Labels extrahieren

  • Benutze die Funktion fcluster()
  • Gibt ein NumPy-Array mit Cluster-Labels zurück.

Vergrößerter Cluster mit horizontaler Linie in Höhe 15

Unsupervised Learning in Python

Cluster-Labels mit fcluster extrahieren

from scipy.cluster.hierarchy import linkage
mergings = linkage(samples, method='complete')
from scipy.cluster.hierarchy import fcluster

labels = fcluster(mergings, 15, criterion='distance') print(labels)
[ 9  8 11 20  2  1 17 14 ... ]
Unsupervised Learning in Python

Cluster-Bezeichnungen mit Ländernamen abgleichen

Angenommen, wir haben eine Liste von Strings namenscountry_names:

import pandas as pd
pairs = pd.DataFrame({'labels': labels, 'countries': country_names})
print(pairs.sort_values('labels'))
               countries  labels
5                Belarus       1
40               Ukraine       1
...
36                 Spain       5
8               Bulgaria       6
19                Greece       6
10                Cyprus       6
28               Moldova       7
...
Unsupervised Learning in Python

Lass uns üben!

Unsupervised Learning in Python

Preparing Video For Download...