algoritma pengelompokan untuk data non-dimensi

12

Saya memiliki dataset ribuan titik dan alat untuk mengukur jarak antara dua titik, tetapi titik data tidak memiliki dimensi. saya ingin algoritma untuk menemukan pusat cluster di dataset ini. Saya membayangkan bahwa karena data tidak memiliki dimensi, pusat cluster mungkin terdiri dari beberapa titik data dan toleransi, dan keanggotaan dalam cluster dapat ditentukan oleh rata-rata jarak titik data ke setiap titik data di pusat cluster.

tolong maafkan saya jika pertanyaan ini memiliki solusi terkenal, saya tahu sedikit tentang masalah seperti ini! penelitian saya (sangat terbatas) hanya muncul algoritma clustering untuk data dimensi, tetapi saya minta maaf sebelumnya jika saya telah melewatkan sesuatu yang jelas.

Terima kasih!

kaleng cat
sumber
Mengapa non-dimensionality menjadikan masalah ini istimewa?
Raphael
1
Beberapa algoritma yang saya lihat untuk pengelompokan (benar-benar hanya k-means) memerlukan generasi titik data acak sebagai biji, yang tidak mungkin dengan data tanpa dimensi. Jadi, persyaratan khusus adalah bahwa pusat-pusat cluster harus diwakili oleh satu set titik data yang ada (mungkin tertimbang).
paintcan

Jawaban:

15

Jika fungsi jarak adalah metrik, maka Anda bisa menggunakan pusat clustering (di mana jari-jari maksimum bola diminimalkan) atau median clustering (yang meminimalkan jumlah jarak ke pusat-pusat cluster). -pusat pengelompokan mudah: hanya mengambil titik- terjauh, dan Anda dijamin untuk mendapatkan 2-perkiraan melalui ketimpangan segitiga (ini adalah hasil lama karena Gonzalez).k k kkkkk

Untuk pengelompokan median, ada banyak pekerjaan, terlalu banyak untuk ditinjau di sini. Michael Shindler di UCLA memiliki survei yang bagus tentang ide-ide utama.k

Kedua masalah ini NP-hard secara umum, dan sulit diperkirakan dalam faktor arbitrer. Perhatikan bahwa jika Anda menjatuhkan syarat menjadi metrik, segalanya menjadi jauh lebih buruk dalam hal perkiraan.

Pendekatan lain, lebih heuristik yang mungkin ok untuk aplikasi Anda adalah dengan menggunakan teknik seperti MDS (penskalaan multidimensi) untuk menanamkan matriks jarak Anda dalam ruang Euclidean, dan kemudian menggunakan salah satu dari banyak metode pengelompokan Euclidean yang berbeda (atau bahkan pengelompokan berarti ). Jika Anda yakin bahwa fungsi jarak Anda adalah metrik, maka Anda dapat melakukan penanaman yang sedikit lebih cerdas ke dalam ruang Euclidean dan mendapatkan jaminan yang dapat dibuktikan (meskipun lemah) pada kualitas jawaban Anda.k

Pada akhirnya, seperti kebanyakan masalah pengelompokan, pilihan akhir Anda bergantung pada aplikasi, ukuran data Anda, dan sebagainya.

Suresh Venkat
sumber
3
Terima kasih atas ikhtisar singkat & jelas. Saya perlu setidaknya beberapa hari untuk menentukan apakah Anda telah menjawab pertanyaan saya. Sepertinya saya harus banyak belajar sebelum saya cukup memahami masalah saya :)
paintcan
5

Ada juga pengelompokan korelasi , yang memiliki informasi input untuk setiap pasangan item yang menunjukkan apakah mereka termasuk dalam cluster yang sama atau cluster yang berbeda.

Warren Schudy
sumber
ya, itu contoh yang bagus. Dan tentu saja Warren ahli dalam hal ini! Saya tidak tahu apakah input OP adalah +/-, atau dapat dikonversi melalui ambang batas. jika demikian, ini jelas merupakan opsi yang layak.
Suresh Venkat
5

Jika Anda hanya mencari kinerja empiris yang baik, algoritma propagasi afinitas biasanya bekerja lebih baik daripada k-median. Ada kode yang tersedia dalam beberapa bahasa dan publikasi yang menjelaskan algoritma secara lebih rinci ada di sini: http://www.psi.toronto.edu/index.php?q=affinity%20propagation

Tujuan yang ingin dimaksimalkan adalah:

is(i,ci)

di mana adalah ukuran kesamaan yang didefinisikan antara pasangan titik (misalnya, jarak negatif), dan memberikan kluster tempat berada. Ada satu parameter tambahan yang diberikan dalam yang mengontrol apakah Anda lebih suka cluster besar atau kecil.c ic i s ( i , i )scicis(i,i)

dan_x
sumber
5

Pertanyaan Anda tampaknya menyiratkan bahwa Anda mencari algoritma dengan waktu komputasi yang layak. Mengingat ukuran simpul Anda (atau titik) akan membuat representasi grafik tertimbang data Anda dan menggunakan Markov Cluster Algorithm (MCL) untuk mengelompokkan grafik.

http://www.micans.org/mcl/

MCL didasarkan pada jalan acak melalui grafik tertimbang dan tidak berbobot untuk menemukan subgraph padat. Ia mampu menangani grafik besar dan telah digunakan di banyak program bioinformatik yang terkenal (seperti BLAST). -Boucher

Christina Boucher
sumber
1

Pertimbangkan algoritma tetangga k-terdekat .

Raphael
sumber
Raphael, algoritma k-NN sebenarnya bukan algoritma pengelompokan, bukan? kecuali Anda berulang kali menarik k tetangga dari sebuah simpul?
Suresh Venkat
Kami menarik tepi antara node yang berada di setiap ini set lain dari terdekat node. Dalam grafik yang dihasilkan, klik-klik (hampir-klik-klik) haruslah semacam cluster. Saya pikir karena kita sedang membangun grafik, mengidentifikasi klik-klik ini seharusnya tidak terlalu sulit, tetapi saya tidak memikirkannya sepenuhnya. k
Raphael