Label klaster pada pengelompokan hierarkis

Unsupervised Learning in Python

Benjamin Wilson

Director of Research at lateral.io

Label klaster pada pengelompokan hierarkis

  • Bukan hanya alat visualisasi!
  • Label klaster pada tahap antara dapat diambil kembali
  • Untuk dipakai mis. pada tabulasi silang

Pengelompokan hierarkis Eurovision

Unsupervised Learning in Python

Klaster antara & ketinggian pada dendrogram

  • Mis. pada ketinggian 15:
    • Bulgaria, Siprus, Yunani satu klaster
    • Rusia dan Moldova klaster lain
    • Armenia klaster tunggal

Zoom klaster dengan garis horisontal pada ketinggian 15

Unsupervised Learning in Python

Dendrogram menampilkan jarak klaster

  • Ketinggian pada dendrogram = jarak antar klaster yang digabung
  • Mis. klaster yang hanya berisi Siprus dan Yunani berjarak ±6

Zoom klaster dengan klaster Siprus/Yunani disorot

Unsupervised Learning in Python

Dendrogram menampilkan jarak klaster

  • Ketinggian pada dendrogram = jarak antar klaster yang digabung
  • Mis. klaster yang hanya berisi Siprus dan Yunani berjarak ±6
  • Klaster baru ini berjarak ±12 dari klaster yang hanya berisi Bulgaria

Zoom klaster dengan klaster Siprus/Yunani dan klaster Siprus/Yunani/Bulgaria disorot

Unsupervised Learning in Python

Klaster antara & ketinggian pada dendrogram

  • Ketinggian pada dendrogram menunjukkan jarak maks. antar klaster yang digabung
  • Jangan gabungkan klaster yang lebih jauh dari ini (mis. 15)

Zoom klaster dengan garis horisontal pada ketinggian 15

Unsupervised Learning in Python

Jarak antarklaster

  • Ditentukan oleh "metode linkage"
  • Pada linkage "complete": jarak antarklaster adalah jarak maks. antar sampel mereka
  • Ditentukan via parameter method, mis. linkage(samples, method="complete")
  • Metode linkage berbeda → pengelompokan hierarkis berbeda!
Unsupervised Learning in Python

Mengekstrak label klaster

  • Gunakan fungsi fcluster()
  • Menghasilkan array NumPy berisi label klaster

Zoom klaster dengan garis horisontal pada ketinggian 15

Unsupervised Learning in Python

Mengekstrak label klaster dengan 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 ... ]
Unsupervised Learning in Python

Menyelaraskan label klaster dengan nama negara

Diberikan daftar string 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
...
Unsupervised Learning in Python

Ayo berlatih!

Unsupervised Learning in Python

Preparing Video For Download...