Saya mencari algoritma yang efisien untuk menemukan cluster pada grafik besar (Ini memiliki sekitar 5.000 simpul dan 10000 tepi).
Sejauh ini saya menggunakan algoritma Girvan-Newman diimplementasikan di perpustakaan java JUNG tetapi cukup lambat ketika saya mencoba untuk menghapus banyak tepi.
Bisakah Anda menyarankan saya alternatif yang lebih baik untuk grafik besar?
algorithms
graph
cluster
mariosangiorgio
sumber
sumber
Jawaban:
Saya pribadi menyarankan pengelompokan Markov . Saya telah menggunakannya beberapa kali di masa lalu dengan hasil yang baik.
Perambatan afinitas adalah pilihan lain yang layak, tetapi tampaknya kurang konsisten daripada pengelompokan Markov.
Ada berbagai pilihan lain, tetapi keduanya bagus di luar kotak dan cocok untuk masalah khusus pengelompokan grafik (yang dapat Anda lihat sebagai matriks jarang). Ukuran jarak yang Anda gunakan juga merupakan pertimbangan. Hidup Anda akan lebih mudah jika Anda menggunakan metrik yang tepat.
Saya menemukan makalah ini sambil mencari tolok ukur kinerja, itu adalah survei yang baik dari subjek.
sumber
Clustering Hirarkis
Ini direkomendasikan kepada saya oleh seorang teman. Menurut Wikipedia :
Markov Cluster
Inilah yang saya gunakan dalam situasi Anda. Ini adalah algoritma yang sangat berguna. Saya menemukan tautan ke PDF yang bagus tentang Algoritma. Ini adalah algoritma yang hebat, dan, karena tidak ada istilah yang lebih baik, sangat "kuat". Cobalah dan lihat.
sumber
Untuk masalah Anda di sini, saya pikir Anda harus memikirkan cara untuk memetakan titik-tepi ke satu set koordinat untuk setiap titik. Saya tidak yakin apakah ada cara yang lebih baik untuk melakukan ini. Tapi, saya pikir Anda bisa memulai dengan mewakili setiap titik sebagai dimensi dan kemudian, nilai tepi ke titik tertentu akan menjadi nilai yang Anda perlukan untuk dimensi itu. Setelah itu Anda bisa melakukan jarak Euclid sederhana dan bekerja dengannya.
sumber