Adakah saran untuk metode pengelompokan untuk jumlah klaster dan jarak non-Euclidean yang tidak diketahui?


8

Saya memerlukan beberapa saran untuk metode clustering (klasifikasi tanpa pengawasan) untuk proyek konsultasi. Saya mencari metode yang mudah-mudahan memiliki properti berikut:

  1. Subjek penelitian saya memiliki tiga sifat. Satu diwakili oleh matriks jarak (non-Euclidean) dan dua lainnya dalam bentuk vektor dalam ruang Euclidean. Matriks jarak berasal dari urutan dan bisa dalam bentuk persen ketidaksamaan atau pengukuran jarak urutan lainnya. Algoritme harus dapat mengambil kedua vektor dalam ruang euclidean dan jarak non-euclidean sebagai input. Sebagai contoh, K-medoid dapat bekerja dengan matriks jarak tetapi K-berarti tidak bisa.

  2. Saya ingin algoritma untuk memilih jumlah cluster dan bobot untuk tiga properti secara otomatis (dengan pengetahuan dan kendala sebelumnya).

  3. Saya memiliki informasi tentang "pusat cluster" yang sebelumnya diidentifikasi. Saya ingin memasukkannya sebagai nilai awal atau awal.

  4. Sebagai ahli statistik, saya lebih suka metode ini memiliki fungsi kemungkinan atau kerugian yang jelas.

Hal terdekat yang dapat saya pikirkan adalah memasang model campuran dalam kerangka Bayesian menggunakan reverse jump MCMC untuk menentukan jumlah cluster. Vektor dalam R ^ d dapat dengan mudah diformulasikan menjadi kemungkinan normal tetapi bagaimana cara berurusan dengan matriks jarak tidak jelas bagi saya. Saya dapat membatasi rata-rata kemungkinan normal untuk berada di setiap pengamatan untuk menjalankan MCMC tetapi itu tidak memiliki arti matematika / statistik yang jelas.

Adakah yang punya pengalaman dengan masalah serupa? Saran untuk referensi akan sangat dihargai!


Mengapa tidak memproyeksikan vektor non-euclidian ke ruang euclidian?
Zach

Jawaban:


4

Saya berpikir bahwa menggunakan kriteria MAP / Bayesian dalam kombinasi dengan campuran Gaussians adalah pilihan yang masuk akal. Poin

Anda tentu saja akan keberatan bahwa MOG membutuhkan data input Euclidean . Jawabannya adalah untuk menemukan satu set poin yang menimbulkan matriks jarak yang diberikan kepada Anda. Contoh teknik untuk ini adalah penskalaan multidimensi:Argmin{xsaya}saya,j(||xsaya-xj||2-Dsayaj)2 dimana Dsayaj adalah jarak titik saya ke titik j.


Terima kasih. Saya menggunakan pendekatan serupa! Saya pikir ada kesalahan ketik pada posting Anda: tidak boleh ada kotak di(xsaya-xj).
Vulpecula

Kenapa tidak? Ini adalah jarak Euclidean, sehingga harus dikuadratkan. Namun, itu adalah norma, jadi saya akan mencoba membuatnya lebih jelas.
bayerj

1

Saya berurusan dengan masalah untuk tesis saya di mana saya harus melakukan pengelompokan pada set data yang saya hanya memiliki matriks kesamaan (= jarak terbalik). Meskipun saya 100% setuju bahwa teknik Bayesian akan menjadi yang terbaik, apa yang saya lakukan adalah model diskriminatif yang disebut Symmetric Convex Coding ( link ). Saya ingat itu bekerja dengan sangat baik.

Di garis depan Bayesian, mungkin Anda bisa mempertimbangkan sesuatu yang mirip dengan pengelompokan, tetapi tidak? Saya sedang berpikir di sepanjang garis Alokasi Dirichlet Laten - algoritma yang sangat luar biasa. Sepenuhnya generatif, dikembangkan dalam konteks pemodelan konten topik dalam dokumen teks korpora. Tetapi ia menemukan banyak aplikasi dalam jenis lain dari masalah pembelajaran mesin tanpa pengawasan. Tentu saja, fungsi jarak bahkan tidak relevan di sana ...


1

DBSCAN berfungsi tanpa mengetahui jumlah cluster sebelumnya, dan dapat menerapkan berbagai metrik jarak.


Terima kasih atas jawaban Anda, BTK, meskipun ini lebih merupakan komentar. Untuk menjadikannya lebih sebagai jawaban, Anda mungkin ingin menambahkan sedikit lebih detail pada DBSCAN dan bagaimana itu berlaku untuk pertanyaan spesifik yang ada.
DL Dahly

1

Anda bisa menggunakan propagasi afinitas atau propagasi afinitas adaptif yang lebih baik. Ini tautan Wikipedia .

Ada dua keuntungan utama untuk kasus Anda dan sepertiga lainnya yang menurut saya merupakan keuntungan tetapi mungkin tidak penting bagi Anda.

  1. Anda tidak menyediakan jumlah cluster. Jumlah akhir cluster tergantung pada nilai preferensi dan nilai-nilai matriks kesamaan. Cara termudah untuk bekerja dengan nilai preferensi adalah dengan menggunakan nilai minimum dari matriks kesamaan (yang bukan nol) untuk mendapatkan jumlah cluster terkecil, kemudian coba misalnya maksimum untuk cluster paling mungkin dan lanjutkan dengan median nilai dan seterusnya ... ATAU Gunakan algoritma propagasi afinitas adaptif dan tentukan preferensi yang ditentukan oleh algoritma.

  2. Anda dapat memberikan ukuran kemiripan apa pun yang dapat Anda buat atau mengambil kebalikan dari ukuran jarak (mungkin waspada terhadap pembagian dengan nol ketika Anda melakukannya).

3. (titik ekstra) Algoritme memilih contoh yang mewakili setiap kluster dan contoh mana yang termasuk di dalamnya. Ini berarti algoritme tidak memberikan rata-rata sewenang-wenang tetapi titik data aktual. Namun Anda masih bisa menghitung rata-rata nanti saja. DAN ini juga berarti bahwa algoritma tersebut tidak menggunakan rata-rata terputus-putus!

Perangkat lunak: Ada beberapa paket yang terdaftar untuk Java, Python dan R di halaman Wikipedia. Jika Anda menyukai MATLAB, seperti yang saya lakukan, maka inilah implementasinya.

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.