Materi
Clustering agglomeratif mulai dengan setiap data sebagai cluster sendiri, lalu berulang kali menggabungkan dua cluster yang paling dekat sampai tinggal satu. User Guide scikit-learn menyebut riwayat itu digambarkan sebagai pohon atau dendrogram; tinggi setiap sambungan adalah jarak saat dua cluster digabung. Berbeda dengan k-means di kelas Machine Learning Dasar, banyaknya cluster tidak harus ditentukan di awal: dendrogram dipotong di sebuah ketinggian, dan banyaknya cabang yang terpotong adalah banyaknya cluster.
Jarak antar-cluster ditentukan metode linkage. Single linkage memakai jarak pasangan anggota terdekat, complete linkage memakai pasangan terjauh, average linkage memakai rata-rata jarak semua pasangan, dan ward meminimalkan kenaikan jumlah kuadrat simpangan di dalam cluster. scipy.cluster.hierarchy.linkage mengembalikan matriks Z: setiap barisnya satu penggabungan berisi dua indeks cluster, jaraknya, dan banyak anggotanya. fcluster memotong Z menjadi label, dengan criterion="distance" (ketinggian) atau "maxclust" (banyak cluster).
| Langkah | Yang digabung | Tinggi |
|---|---|---|
| 1 | {G1} + {G2} | 0,5 |
| 2 | {G3} + {G4} | 1,2 |
| 3 | {G1, G2} + {G5} | 2,0 |
| 4 | {G1, G2, G5} + {G3, G4} | 7,0 |
Memotong riwayat di atas pada ketinggian 3 menghasilkan dua cluster, {G1, G2, G5} dan {G3, G4}, karena hanya langkah 4 yang lebih tinggi dari 3. Mutu pengelompokan tanpa label dinilai dengan koefisien silhouette: untuk setiap data, a = rata-rata jarak ke anggota cluster sendiri dan b = rata-rata jarak ke cluster terdekat lainnya, lalu silhouette = (b − a) ÷ max(a, b). Dokumentasi silhouette_score menyebut nilai terbaik 1, terburuk −1, dan nilai dekat 0 menandakan cluster bertumpang tindih.