Làm thế nào để phát hiện cộng đồng trong một mạng xã hội / đồ thị có trọng số?


42

Tôi tự hỏi liệu ai đó có thể đề xuất điểm khởi đầu tốt là gì khi thực hiện phát hiện / phân vùng biểu đồ cộng đồng / phân cụm trên biểu đồ có các cạnh có trọng số , không có hướng . Biểu đồ trong câu hỏi có khoảng 3 triệu cạnh và mỗi cạnh biểu thị mức độ tương tự giữa hai đỉnh mà nó kết nối. Đặc biệt, trong tập dữ liệu này các cạnh là các cá thể và các đỉnh là thước đo cho sự giống nhau của hành vi được quan sát của chúng.

Trước đây, tôi đã làm theo một gợi ý tôi đã nhận được ở đây trên stats.stackexchange.com và đã sử dụng triển khai phân cụm mô đun của Newman và hài lòng với kết quả, nhưng đó là trên một tập dữ liệu không có trọng số.

Có bất kỳ thuật toán cụ thể nào tôi nên xem xét?

Câu trả lời:


20

igraph thực hiện phân cụm mô đun hóa của Newman (chức năng fastgreedy) cũng có thể được sử dụng với các cạnh có trọng số. Chỉ cần thêm thuộc tính trọng lượng cho các cạnh và phân tích như bình thường. Theo kinh nghiệm của tôi, nó chạy nhanh hơn với trọng lượng vì có ít mối quan hệ hơn.


cảm ơn rất nhiều vì đã chỉ ra điều này cho tôi, tôi đã hoàn toàn bỏ lỡ tài liệu tham khảo về các trọng số trong tài liệu.
laramichaels

9

Tôi biết rằng Gephi có thể xử lý biểu đồ có trọng số không mong muốn, nhưng tôi dường như nhớ nó phải được lưu trữ trong GDF , khá gần với CSV hoặc Ucinet DL . Hãy lưu ý rằng nó vẫn là một bản phát hành alpha. Bây giờ, về việc phân cụm biểu đồ của bạn, Gephi dường như thiếu các đường ống phân cụm, ngoại trừ thuật toán MCL hiện có sẵn trong phiên bản mới nhất. Có một Dự án Mã Google vào năm 2009, Thống kê mạng Gephi (có tính năng ví dụ như số liệu mô đun của Newman), nhưng tôi không biết liệu có thứ gì đó đã được phát hành theo hướng này hay không. Dù sao, nó dường như cho phép một số loại tính toán mô đun / phân cụm, nhưng cũng xem Phân tích mạng xã hội bằng R và GephiChuẩn bị dữ liệu cho Phân tích mạng xã hội bằng R và Gephi (Rất cám ơn @Tal).

Nếu bạn đã quen với Python, thì đáng để thử NetworkX (Dưới đây là ví dụ về biểu đồ có trọng số với mã tương ứng). Sau đó, bạn có nhiều cách để thực hiện phân tích của bạn.

Bạn cũng nên xem INSNA - Phần mềm phân tích mạng xã hội hoặc trang web của Tim Evans về Mạng phức tạp và độ phức tạp .


Xin chào, Chỉ để cho bạn biết rằng Gephi không thể xử lý biểu đồ vô hướng có trọng số để xác định cộng đồng thông qua mô đun. cảm ơn. -Gautam

@Gautam Tốt để biết, cảm ơn. Tôi không thực sự quen thuộc với Gephi, nhưng tôi nghĩ đó là sự phát triển tích cực.
chl


4

Thuật toán mô đun Louvain có sẵn trong C ++: https://sites.google.com/site/findc truyềnities /

Nó liên quan đến các mạng có trọng số của hàng triệu nút và cạnh, và đã được chứng minh là nhanh hơn nhiều so với thuật toán Newman.


Thuật toán mô đun Louvain rất nhanh và ổn định, tôi tự hỏi liệu có phiên bản thu nhỏ bản đồ nào không.
Trang

3

Nếu bạn đang sử dụng python và đã tạo một biểu đồ có trọng số bằng NetworkX , thì bạn có thể sử dụng python-louvain để phân cụm. Trong đó G là đồ thị có trọng số:

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

1

Tôi vừa bắt gặp gói tnet cho R. Người sáng tạo dường như đang nghiên cứu về khám phá cộng đồng trong các đồ thị có trọng số và lưỡng cực (hai chế độ).

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

Tôi chưa sử dụng nó.


1

SLPA (hiện được gọi là GANXiS) là một thuật toán nhanh có khả năng phát hiện cả các cộng đồng rời rạc và chồng chéo trong các mạng xã hội (không định hướng / định hướng và không trọng số / trọng số). Nó cho thấy thuật toán tạo ra kết quả có ý nghĩa trên các mạng xã hội và gen trong thế giới thực. Đây là một trong những công nghệ hiện đại. Nó có sẵn tại

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

Xem một đánh giá tốt đẹp arxiv.org/abs/1110.5813 để biết thêm thông tin


1

Tôi đã triển khai java cho mạng không chồng chéo, có trọng số / không trọng số có thể xử lý 3 triệu nút (Tôi đã kiểm tra nó cho một triệu tập dữ liệu nút). Tuy nhiên, nó hoạt động như k-mean và cần số lượng phân vùng được phát hiện làm đầu vào (k tính bằng km). Bạn có thể tìm thêm thông tin ở đây , và đây là , trong github

Chúc mừng

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.