首先什麼是社區(Community structure)呢?其實並非指一個網絡相互鏈接的部分,而是一個網絡中連接「緊密的部分」,至於怎麼定義緊密就有不少方法了。html
社區發現算法能夠參考下面的博客:博客1,博客2python
那麼又該如何動手實現呢??算法
因爲小組主要使用python和R語言編程,因此首先想到networkX這個python包,可是我找了一下里面並無相應的算法實現。其次是igraph,它提供了python和R語言的接口,然而經過調查,只在R的接口文檔裏找到了一些社區發現算法,好比幾個fast_greedy,等編程
除了這兩個包外,還有一個很不錯的包,這個包,小組的成員之前並無使用過,叫graph-tool,這個包裏,實現了一些社區發現的算法。固然在python下還有一些單獨的社區發現算法包,可是這些相對獨立,這裏就不在介紹了網絡
比較好的處理數據與繪製網絡圖可能要分開,繪製大規模網絡圖能夠使用gephi,使用這個軟件能夠手動設置可視化的網絡圖,這樣咱們使用python等處理網絡數據和執行網絡算法,使用gephi執行可視化,會是一個很不錯的工做流。gephi其實很強大,裏面其實也實現了社區發現的一些算法。請參考它的文檔。htm
若是如對比較龐大的數據集。blog
參考文獻接口
- http://barabasi.com/networksciencebook/resources/chapter9.html
- http://stats.stackexchange.com/questions/2948/how-to-do-community-detection-in-a-weighted-social-network-graph
- http://stackoverflow.com/questions/5822265/are-there-implementations-of-algorithms-for-community-detection-in-graphs?noredirect=1&lq=1
- http://senseable.mit.edu/community_detection/
- http://stackoverflow.com/questions/9471906/what-are-the-differences-between-community-detection-algorithms-in-igraph
- http://stackoverflow.com/questions/24513339/how-to-find-measures-after-community-detection-in-igraph-r?rq=1