Etichete de cluster în clustering ierarhic

Învățare nesupervizată în Python

Benjamin Wilson

Director of Research at lateral.io

Etichete de cluster în clustering ierarhic

  • Nu doar un instrument de vizualizare!
  • Etichetele de cluster din orice etapă intermediară pot fi recuperate
  • Utilizabile, ex. în tabulări încrucișate

Clustering ierarhic Eurovision

Învățare nesupervizată în Python

Clusterings intermediare și înălțime în dendrogramă

  • Ex. la înălțimea 15:
    • Bulgaria, Cipru, Grecia formează un cluster
    • Rusia și Moldova formează altul
    • Armenia, cluster individual

Cluster detaliat cu linie orizontală la înălțimea 15

Învățare nesupervizată în Python

Dendrogramele arată distanțele dintre clustere

  • Înălțimea în dendrogramă = distanța dintre clustere fuzionate
  • Ex. clusterul format doar din Cipru și Grecia aveva distanța aprox. 6

Cluster detaliat cu clusterul Cipru/Grecia evidențiat

Învățare nesupervizată în Python

Dendrogramele arată distanțele dintre clustere

  • Înălțimea în dendrogramă = distanța dintre clustere fuzionate
  • Ex. clusterul format doar din Cipru și Grecia aveva distanța aprox. 6
  • Acest cluster nou se află la distanța aprox. 12 față de clusterul format doar din Bulgaria

Cluster detaliat cu clusterele Cipru/Grecia și Cipru/Grecia/Bulgaria evidențiate

Învățare nesupervizată în Python

Clusterings intermediare și înălțime în dendrogramă

  • Înălțimea din dendrogramă specifică distanța max. dintre clustere fuzionate
  • Nu fuzionați clustere mai îndepărtate decât această valoare (ex. 15)

Cluster detaliat cu linie orizontală la înălțimea 15

Învățare nesupervizată în Python

Distanța dintre clustere

  • Definită printr-o „metodă de legătură"
  • În legătura „completă": distanța dintre clustere = distanța max. dintre eșantioanele lor
  • Specificată prin parametrul method, ex. linkage(samples, method="complete")
  • Metodă diferită de legătură, clustering ierarhic diferit!
Învățare nesupervizată în Python

Extragerea etichetelor de cluster

  • Utilizați funcția fcluster()
  • Returnează un array NumPy de etichete de cluster

Cluster detaliat cu linie orizontală la înălțimea 15

Învățare nesupervizată în Python

Extragerea etichetelor de cluster cu fcluster

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 ... ]
Învățare nesupervizată în Python

Alinierea etichetelor de cluster cu numele țărilor

O listă de șiruri country_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
...
Învățare nesupervizată în Python

Să exersăm!

Învățare nesupervizată în Python

Preparing Video For Download...