Bagaimana cara deteksi komunitas dalam jaringan / grafik sosial tertimbang?

42

Saya bertanya-tanya apakah seseorang dapat menyarankan apa yang merupakan titik awal yang baik untuk melakukan deteksi komunitas / partisi / pengelompokan grafik pada grafik yang memiliki bobot , tepi yang tidak terarah . Grafik yang dimaksud memiliki sekitar 3 juta tepi dan masing-masing tepi menyatakan tingkat kesamaan antara dua simpul yang terhubung. Secara khusus, di tepi dataset ini adalah individu dan simpul adalah ukuran kesamaan perilaku yang diamati.

Di masa lalu saya mengikuti saran saya sampai di sini di stats.stackexchange.com dan menggunakan implementasi igraph tentang pengelompokan modularitas Newman dan puas dengan hasilnya, tetapi itu pada dataset tidak tertimbang.

Apakah ada algoritma spesifik yang harus saya perhatikan?

laramichaels
sumber

Jawaban:

20

implementasi igraph dari pengelompokan modularitas Newman (fungsi fastgreedy) dapat digunakan dengan tepi yang tertimbang juga. Cukup tambahkan atribut bobot ke tepian dan analisis seperti biasa. Dalam pengalaman saya, ini berjalan lebih cepat dengan bobot karena ada lebih sedikit ikatan.

Petr
sumber
terima kasih banyak karena menunjukkan ini kepada saya, saya benar-benar melewatkan referensi ke bobot dalam dokumentasi.
laramichaels
9

Saya tahu bahwa Gephi dapat memproses grafik tertimbang yang tidak diarahkan, tetapi sepertinya saya ingat itu harus disimpan dalam GDF , yang cukup dekat dengan CSV, atau Ucinet DL . Ketahuilah bahwa ini masih merupakan rilis alpha. Sekarang, tentang mengelompokkan grafik Anda, Gephi tampaknya tidak memiliki pipa pengelompokan, kecuali untuk algoritma MCL yang sekarang tersedia di versi terbaru. Ada Proyek Google Code pada tahun 2009, Statistik Jaringan Gephi (menampilkan misalnya metrik modularitas Newman), tetapi saya tidak tahu apakah ada sesuatu yang dirilis ke arah ini. Lagi pula, tampaknya memungkinkan beberapa jenis modularitas / perhitungan clustering, tetapi lihat juga Analisis Jaringan Sosial menggunakan R dan Gephi danPersiapan data untuk Analisis Jaringan Sosial menggunakan R dan Gephi (Banyak terima kasih kepada @Tal).

Jika Anda terbiasa dengan Python, ada baiknya mencoba NetworkX (Berikut adalah contoh grafik berbobot dengan kode yang sesuai). Maka Anda memiliki banyak cara untuk melakukan analisis Anda.

Anda juga harus melihat INSNA - Perangkat Lunak Analisis Jaringan Sosial atau halaman web Tim Evans tentang Jaringan dan Kompleksitas Kompleks .

chl
sumber
Halo, Hanya untuk memberi tahu Anda bahwa Gephi tidak dapat menangani grafik tidak berarah tertimbang untuk mengidentifikasi komunitas melalui modularitas. Terima kasih. -Gautam
@ Gautam Senang tahu, terima kasih. Saya tidak terlalu mengenal Gephi, tetapi saya pikir itu dalam pengembangan aktif.
chl
4

Algoritma modularitas Louvain tersedia dalam C ++: https://sites.google.com/site/findcommunities/

Ini berkaitan dengan jaringan berbobot jutaan node dan tepi, dan telah terbukti jauh lebih cepat daripada algoritma Newman.

Seb
sumber
Algoritma modular Louvain cepat dan stabil , saya ingin tahu apakah ada peta yang mengurangi versinya.
Halaman
3

Jika Anda menggunakan python, dan telah membuat grafik berbobot menggunakan NetworkX , maka Anda bisa menggunakan python-louvain untuk pengelompokan. Di mana G adalah grafik berbobot:

import community 
partition = community.best_partition(G, weight='weight')
kingledion
sumber
1

Saya baru saja menemukan paket tnet untuk R. Pembuatnya tampaknya sedang meneliti penemuan komunitas dalam grafik berbobot dan bipartit (dua mode).

http://opsahl.co.uk/tnet/content/view/15/27/

Saya belum menggunakannya.


sumber
1

SLPA (sekarang disebut GANXiS) adalah algoritma cepat yang mampu mendeteksi komunitas yang terpisah dan tumpang tindih di jejaring sosial (tidak diarahkan / diarahkan dan tidak berbobot / berbobot). Ditunjukkan bahwa algoritma menghasilkan hasil yang bermakna pada jaringan sosial dan gen dunia nyata. Ini adalah salah satu yang mutakhir. Ini tersedia di

https://sites.google.com/site/communitydetectionslpa/

Lihat ulasan bagus arxiv.org/abs/1110.5813 untuk info lebih lanjut

Jerry
sumber
1

Saya memiliki implementasi java untuk jaringan non-tumpang tindih, tertimbang / tidak berbobot yang mungkin bisa menangani 3 juta node (Saya sudah mengujinya untuk sejuta node dataset). Namun, ini berfungsi seperti k-means, dan membutuhkan jumlah partisi yang dapat dideteksi sebagai input (k dalam kmeans). Anda dapat menemukan lebih banyak info di sini , dan ini kodenya , di github

Tepuk tangan,

Komunitas
sumber