Metode inisialisasi K-means clustering


10

Saya tertarik pada kondisi terkini untuk memilih benih awal (pusat cluster) untuk K-means.

Googling mengarah ke dua pilihan populer:

  1. pemilihan awal benih secara acak, dan,
  2. menggunakan teknik pemilihan KMeans ++: Arthur & Vassilvitskii 2006 k-means ++: Keuntungan Pembibitan Hati-Hati

Apakah ada metode lain yang menjanjikan yang diketahui oleh siapa pun di sini, yang mungkin tidak sepopuler itu?

Jawaban:


11

Izinkan saya, tanpa melangkah jauh, cukup dengan menyalin-menempelkan daftar opsi dari fungsi saya sendiri !kmini(makro untuk SPSS), yang ditemukan dalam koleksi "Clustering" di sini .

Metode untuk membuat atau memilih pusat cluster awal. Memilih:

  • RGC - centroid dari subsampel acak . Data dipartisi secara acak dengan tidak ktumpang tindih, dengan keanggotaan, grup, dan pusat massa kelompok ini ditunjuk sebagai pusat awal. Dengan demikian, pusat dihitung, tidak dipilih dari kasus dataset yang ada. Metode ini menghasilkan pusat-pusat yang terletak berdekatan satu sama lain dan dengan pusat massa umum dari data.
  • RP - poin yang dipilih secara acak . kkasus berbeda dari data dipilih secara acak untuk menjadi pusat awal.
  • RUNFP - poin terjauh (pemilihan berjalan). kKasus-kasus pertama diambil sebagai pusat dan kemudian selama proses melalui sisa kasus dataset di sana dilakukan penggantian di antara pusat secara bertahap; tujuan penggantian adalah untuk mendapatkan ktitik akhir yang paling jauh satu sama lain dalam ruang variabel. Titik-titik ini (kasus) yang menempati posisi periferal di awan data adalah pusat awal yang dihasilkan. (Metode ini digunakan sebagai standar dalam prosedur SPSS k-means QUICK CLUSTER. Lihat detail dalam Algoritma SPSS. Lihat juga yang dijelaskan di sini ).
  • SIMFP - poin terjauh (seleksi sederhana). Pusat pertama dipilih sebagai kasus acak dari dataset. Pusat ke-2 dipilih sebagai kasing yang jaraknya jauh dari pusat itu. Pusat ke-3 dipilih sebagai kasing yang berjarak paling jauh dari keduanya (dari yang terdekat dari keduanya), - dan seterusnya.
  • KMPP - titik terjauh acak, atau k-means ++. Pusat pertama dipilih sebagai kasus acak dari dataset. Pusat ke-2 dipilih juga secara acak, tetapi probabilitas pemilihan suatu kasus sebanding dengan jarak (persegi euclidean) dari itu ke pusat (ke-1). Pusat 3 dipilih juga secara acak dengan probabilitas pemilihan proporsional dengan jarak kasus ke terdekat dari dua pusat, - dan seterusnya. (Arthur, D., Vassilvitskii, S. K-berarti ++: keuntungan dari penyemaian yang cermat. // Prosiding simposium tahunan ACM-SIAM ke-18 pada algoritma Diskrit. 2007., 1027-1035.)
  • GREP - poin perwakilan grup . Gagasan metode - untuk mengumpulkan sebagai pusatkkebanyakan kasus “wakil” representatif. Pusat 1 diambil sebagai kasus yang paling dekat dengan cenroid data umum. Kemudian sisa pusat dipilih dari titik data sedemikian rupa sehingga setiap titik dianggap apakah lebih dekat (dan berapa banyak, dalam hal jarak euclidean kuadrat) ke satu set titik daripada masing-masing yang terakhir ke salah satu pusat yang sudah ada. Yaitu setiap titik dinyatakan sebagai kandidat untuk mewakili beberapa kelompok poin yang belum cukup terwakili oleh pusat yang telah dikumpulkan. Poin paling representatif dalam hal ini dipilih sebagai pusat berikutnya. (Kaufman, L. Rousseeuw, PJ Finding groups in data: pengantar analisis cluster., 1990. Lihat juga: Pena, JM et al. Perbandingan empiris dari empat metode inisialisasi untuk algoritma K-means // Pattern Recognition Lett. 20 (10), 1999,
  • [Ada juga metode yang bagus, belum diterapkan oleh saya di makro, untuk menghasilkan kpoin yang dari seragam acak tetapi "kurang acak daripada acak", di suatu tempat antara acak dan keserakahan; lihat dasar teoritis potensial untuk metode itu]
  • Satu lagi metode adalah melakukan pengelompokan hierarkis dengan metode Ward. Anda dapat melakukannya pada sampel objek jika sampel terlalu besar. Kemudian sarana dari kcluster yang dihasilkan olehnya adalah benih awal untuk prosedur k-means. Ward lebih disukai daripada metode pengelompokan hierarkis lainnya karena berbagi tujuan bersama dengan k-means.

Metode RGC, RP, SIMFP, KMPP bergantung pada angka acak dan dapat mengubah hasilnya dari menjalankan ke menjalankan.

Metode RUNFP mungkin sensitif terhadap urutan kasus dalam dataset; tetapi metode GREP tidak (terlepas dari kesempatan ketika ada banyak kasus yang identik, ikatan, dalam data). Metode GREP mungkin gagal mengumpulkan semua kpusat jika kjumlah kasus relatif besar dalam data ( n), terutama saat k>n/2. [Makro akan menginformasikan jika data tidak memungkinkan metode itu mengumpulkan kpusat]. Metode GREP adalah yang paling lambat, ia menghitung [dalam implementasi saya] matriks jarak antara semua kasus, oleh karena itu tidak akan cocok jika ada puluhan ribu atau jutaan kasus. Namun, Anda dapat melakukannya dengan subsampel data secara acak.

Saya tidak membahas saat ini metode mana yang "lebih baik" dan dalam keadaan apa, karena saya belum melakukan penyelidikan simulasional yang luas terhadap pertanyaan sejauh ini. Sangat saya awal tayangan dan dangkal telah bahwa grep sangat layak (tapi mahal), dan bahwa jika Anda ingin metode masih kompetitif benar-benar murah cukup, poin k kemudian hanya acak, RP, adalah pilihan yang layak.



5

Terakhir kali saya melakukan tinjauan literatur yang komprehensif tentang ini, yang diakui hampir 20 tahun yang lalu, dua rekomendasi utama adalah:

  1. Untuk menggunakan Metode Ward (ini adalah algoritma analisis hierarki klaster standar) untuk menemukan pusat awal.
  2. Gunakan mulai acak.

Dalam aplikasi data besar, metode Ward tidak bekerja dengan baik, meskipun dapat diterapkan ke sub-sampel.

Saya melakukan beberapa simulasi, yang tidak pernah saya lakukan untuk penerbitan, dan menemukan bahwa:

Hal utama yang saya ambil dari ini adalah bahwa algoritma SPSS secara mengejutkan baik, tetapi jika seseorang memiliki sumber daya, 1000+ titik awal acak adalah cara yang harus dilakukan.


Dalam simulasi Anda, apakah Anda melihat adanya perubahan perilaku untuk data dimensi tinggi?
Arin Chaudhuri

Bukannya aku bisa mengingatnya. Namun, simulasi saya tidak akan menggunakan lebih dari sekitar 20 variabel yang saya pikir. Namun, semakin tinggi dimensionalitasnya, semakin besar jumlah awal acak yang dibutuhkan semuanya menjadi sama.
Tim

Catatan: Algoritma SPSS default (btw tautan Anda rusak) adalah apa yang saya akui sebagai RUNFP dalam jawaban saya.
ttnphns

3

Dengan nomenklatur ttnphns, saya menguji RGC, RP, dan KMPP pada:

  • Poin 2D / 3D
  • sekantong kata-kata dari dokumen tekstual
  • L.2

Saya tidak merekomendasikan RGC karena pusat-pusat yang dihasilkan sangat dekat satu sama lain: rata-rata banyak titik dekat dengan rata-rata global (hukum jumlah besar). Ini dapat memperlambat konvergensi banyak: dibutuhkan beberapa saat sebelum cluster mulai terindividualisasi.

RP umumnya baik dan akan direkomendasikan sebagai pilihan mudah pertama.

KMPP sangat populer dan bekerja sangat baik dalam dimensi kecil: dibandingkan dengan RP, ia cenderung mengurangi kemungkinan berakhirnya minimum lokal.

Namun ketika saya sedang mengerjakan dataset besar (1M poin yang merupakan kumpulan kata-kata dari dokumen tekstual dengan dimensi besar), RP sedikit mengungguli KMPP dalam arti bahwa itu berakhir dengan iterasi yang sedikit lebih sedikit. Saya terkejut dengan hal ini. Dalam dataset besar / dimensi tinggi, konvergensi ke minimum global tidak mungkin, Anda mengukur kualitas sebagai "seberapa baik minimum lokal adalah" = "seberapa kecil SOD akhirnya". Kedua metode memiliki kualitas yang sama.

Perhatikan bahwa penting untuk menggunakan metode acak jika Anda ingin menggunakan replikasi untuk meningkatkan kualitas.


Terima kasih. Saya akan berurusan dengan data dimensi besar jadi ini cukup berguna.
Arin Chaudhuri
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.