Topluluk tespitini ağırlıklı bir sosyal ağda / grafikte nasıl yapabilirim?


42

Ben bir grafik üzerinde topluluk algılama / grafik bölümleme / kümelenme performans söz konusu olduğunda birileri iyi bir başlangıç noktalarının ne önermek eğer merak ediyorum ağırlıklı , yönsüz kenarları. Söz konusu grafik yaklaşık 3 milyon kenara sahiptir ve her bir kenar, bağlandığı iki köşe arasındaki benzerlik derecesini ifade eder. Özellikle, bu veri setinde kenarlar bireylerdir ve köşeler gözlemlenen davranışlarının benzerliğinin bir ölçüsüdür.

Geçmişte, istatistik.stackexchange.com adresinden geldiğim bir öneriyi takip ettim ve igraph'ın Yeni'nin modülerlik kümelemesi uygulamasını kullandım ve sonuçlardan memnun kaldım, ancak bu ağırlıklandırılmamış bir veri setindeydi.

Bakmam gereken belirli algoritmalar var mı?

Yanıtlar:


20

Newman'ın modülerlik kümelemesi (fastgreedy işlevi) uygulaması, ağırlıklı kenarlarla da kullanılabilir. Sadece kenarlara ağırlık niteliği ekleyin ve her zamanki gibi analiz edin. Tecrübelerime göre daha az bağ olduğu için ağırlıklar daha da hızlı çalışıyor.


Bunu bana gösterdiğiniz için çok teşekkürler, belgelerdeki ağırlık referansını tamamen kaçırmıştım.
laramichaels

9

Bunu biliyorum Gephi yönsüz ağırlıklı grafiği işleyebilir, ama saklanacak olan hatırlar gibiyim GDF oldukça yakın CSV veya Ucinet etmek, DL . Hala bir alfa sürümü olduğunu unutmayın. Şimdi, grafiğinizi kümelemeyle ilgili Gephi, şu anda en son sürümde mevcut olan MCL algoritması dışında kümelenme boru hatlarından yoksun görünüyor. 2009'da Gephi Ağ İstatistikleri (örneğin, Newman'ın modülerlik metriğini içeren) bir Google Kod Projesi vardı , ancak bu yönde bir şey yayınlanıp yayınlanmadığını bilmiyorum. Her neyse, bir tür modülerlik / kümelenme hesaplamasına izin veriyor gibi gözüküyor, ancak R ve Gephi veR ve Gephi kullanarak Sosyal Ağ Analizi için veri hazırlama ( @Tal için çok teşekkürler).

Python'a alışkınsanız , NetworkX'i denemeye değerdir (Burada ilgili kodla birlikte ağırlıklı bir grafik örneği ). Öyleyse analizinizi yapmanın birçok yolu var.

Ayrıca INSNA - Sosyal Ağ Analiz Yazılımı veya Tim Evans'ın Karmaşık Ağlar ve Karmaşıklık ile ilgili web sayfasına da bakmalısınız .


Merhaba, Sadece Gephi'nin topluluğu modülerlikle tanımlamak için ağırlıklı yönlendirilmemiş grafikleri kullanamayacağını bildirmek için. Teşekkürler. -Gautam

@Gautam Bilmek güzel, teşekkürler. Gephi'ye pek aşina değilim ama aktif bir gelişim içinde olduğunu düşündüm.
chl


4

Louvain modülerlik algoritması C ++ 'da mevcuttur: https://sites.google.com/site/findcommunities/

Milyonlarca düğüm ve kenar ağırlıklı ağlarla ilgilenmektedir ve Newman algoritmasından çok daha hızlı olduğu gösterilmiştir.


Louvain modüler algoritması hızlı ve kararlı , merak ediyorum bir harita versiyonunu azaltıyor mu.
Sayfa

3

Python kullanıyorsanız ve NetworkX kullanarak ağırlıklı bir grafik oluşturduysanız , kümeleme için python-louvain kullanabilirsiniz . G, ağırlıklı bir grafik olduğunda:

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

1

Az önce R için tnet paketine rastladım. Yaratıcı ağırlıklı ve iki taraflı (iki modlu) grafiklerde topluluk keşfi üzerine araştırma yapıyor gibi görünüyor.

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

Henüz kullanmadım.


1

SLPA (şimdi GANXiS olarak adlandırılır), sosyal ağlardaki (yönlendirilmemiş / yönlendirilmiş ve ağırlıklandırılmamış / ağırlıklı) hem ayrık hem de örtüşen toplulukları tespit edebilen hızlı bir algoritmadır. Algoritmanın gerçek dünyadaki sosyal ve gen ağlarında anlamlı sonuçlar ürettiği gösterilmiştir. Son teknolojiden biridir. De mevcuttur

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

Daha fazla bilgi için güzel bir inceleme bakın arxiv.org/abs/1110.5813


1

Muhtemelen 3 milyon düğümü işleyebilecek örtüşmeyen, ağırlıklı / ağırlıksız bir ağ için bir java uygulaması kullandım (bir milyon düğüm veri kümesi için test ettim). Bununla birlikte, k-aracı gibi çalışır ve bir girdi olarak algılanması gereken bölümlerin sayısına ihtiyaç duyar (km cinsinden k). Sen daha fazla bilgi bulabilirsiniz burada ve burada kod , github içinde

Alkış,

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.