Apa kriteria berhenti untuk pengelompokan hierarki aglomeratif yang digunakan dalam praktik?

32

Saya telah menemukan literatur yang luas yang mengusulkan segala macam kriteria (misalnya Glenn et al. 1985 (pdf) dan Jung et al. 2002 (pdf)). Namun, sebagian besar tidak mudah diimplementasikan (setidaknya dari sudut pandang saya). Saya menggunakan scipy.cluster.hierarchy untuk mendapatkan hierarki klaster, dan saya sekarang mencoba untuk memutuskan bagaimana membentuk cluster datar dari itu. Tujuan saya adalah untuk menemukan pola umum dalam pengamatan saya, jadi saya tidak punya referensi untuk membandingkan pengelompokan yang diperoleh. Adakah yang bisa menyarankan solusi pragmatis?

Björn Pollex
sumber
Di halaman web saya, ada koleksi zip " Kriteria pengelompokan " dengan deskripsi (dan fungsi SPSS) dari sejumlah kriteria pengelompokan internal populer (aturan penghentian). Untuk infomu.
ttnphns

Jawaban:

18

Entri Wikipedia berikut benar-benar melakukan pekerjaan yang cukup baik untuk menjelaskan metode yang paling populer dan relatif sederhana:

The Cara Siku heuristik yang dijelaskan di sana mungkin adalah karena populer paling penjelasan sederhana (jumlah perbedaan dijelaskan oleh jumlah cluster) ditambah dengan pemeriksaan visual. The informasi metode teoritis tidak sulit untuk menerapkan baik dan halaman memiliki beberapa pseudocode dapat Anda gunakan untuk memulai. Yang terakhir ini analog dengan kemungkinan hukuman berdasarkan kompleksitas model seperti dalam kriteria informasi terkenal seperti AIC, BIC, dll.

ars
sumber
Terima kasih! Artikel Wikipedia tentang pengelompokan hierarkis tidak bertautan dengan yang itu.
Björn Pollex
2
Oh benar Diperbaiki sekarang di bawah tautan "lihat juga", terima kasih telah menunjukkannya!
ars
Dalam Metode Siku, bagaimana jika objek yang akan dikelompokkan cukup "kompleks"? Maksud saya, itu bukan poin sederhana, melainkan kumpulan data yang kompleks. Saya telah menemukan mereka berpasangan jarak (jarak yang ditentukan sendiri). Bagaimana saya menghitung apa yang disebut "varians" di sini untuk menerapkan Metode Siku?
Sibbs Gambling
17

Agak sulit untuk memberikan solusi yang jelas tentang bagaimana memilih jumlah "terbaik" cluster dalam data Anda, apa pun metode pengelompokan yang Anda gunakan, karena Cluster Analysis berupaya mengisolasi kelompok unit statistik (baik itu individu atau variabel ) untuk tujuan eksplorasi atau deskriptif, pada dasarnya. Oleh karena itu, Anda juga harus menginterpretasikan output dari skema cluster Anda dan beberapa solusi cluster mungkin sama-sama menarik.

Sekarang, mengenai kriteria statistik yang biasa digunakan untuk memutuskan kapan harus berhenti mengumpulkan data, seperti yang ditunjukkan oleh @ars, sebagian besar adalah kriteria yang dipandu secara visual , termasuk analisis dendrogram atau inspeksi profil klaster, juga disebut plot siluet (Rousseeuw, 1987) . Beberapa kriteria numerik , juga dikenal sebagai indeks validitas, juga diusulkan, misalnya indeks validitas Dunn, indeks validitas Davies-Bouldin, indeks C, gamma Hubert, untuk beberapa nama. Hierarchical clustering sering dijalankan bersama-sama dengan k-means (pada kenyataannya, beberapa contoh k-means karena merupakan algoritma stokastik), sehingga menambah dukungan untuk solusi clustering yang ditemukan. Saya tidak tahu apakah semua hal ini tersedia dengan Python, tetapi sejumlah besar metode tersedia di R (lihatTampilan tugas Cluster , sudah dikutip oleh @mbq untuk pertanyaan terkait, Alat apa yang bisa digunakan untuk menerapkan algoritma clustering pada MovieLens? ). Pendekatan lain termasuk pengelompokan fuzzy dan pengelompokan berbasis model (juga disebut analisis sifat laten , di komunitas psikometrik) jika Anda mencari cara yang lebih kuat untuk memilih jumlah cluster dalam data Anda.

BTW, saya baru saja menemukan halaman web ini, scipy-cluster , yang merupakan perpanjangan dari Scipy untuk menghasilkan, memvisualisasikan, dan menganalisis cluster hierarkis . Mungkin itu termasuk fungsi lainnya? Saya juga pernah mendengar tentang PyChem yang menawarkan hal-hal yang cukup bagus untuk analisis multivarian.

Referensi berikut juga dapat membantu:

Steinley, D., & Brusco, MJ (2008). Pemilihan variabel dalam analisis klaster: Perbandingan empiris dari delapan prosedur. Psychometrika , 73 , 125-144.

chl
sumber
Terima kasih atas jawaban yang luar biasa ini! Sebenarnya, modul hierarkis pengelompokan yang Anda tunjukkan sudah menjadi bagian dari scipy. Juga, Scipy menyediakan implementasi k-means, jadi saya bisa dengan mudah menggunakannya.
Björn Pollex
Ok, saya tidak melihat detail ke dalam ini. Untuk k-means, Anda perlu memperhatikan fakta bahwa kami biasanya membutuhkan dua loop luar untuk memvalidasi solusi cluster (satu di mana Anda memvariasikan # cluster dan lainnya untuk memvariasikan seed - tujuannya adalah untuk meminimalkan RSS); maka Anda dapat menggunakan statistik Gap untuk memilih # cluster yang optimal.
chl
5

Saya baru-baru ini menjadi dana dari metode visualisasi clustergram (diimplementasikan dalam R).

Saya menggunakannya untuk metode tambahan untuk menilai jumlah kluster yang "baik". Memperluasnya ke metode pengelompokan lain tidak begitu sulit (saya benar-benar melakukannya, hanya saja tidak bisa menerbitkan kode)

teks alternatif

Tal Galili
sumber