web-dev-qa-db-ja.com

グラフでコミュニティを検出するためのアルゴリズムの実装はありますか?

Girvan-Newmanアルゴリズム(2002)などのコミュニティ検出アルゴリズムの実装を探しています。この分野の研究者数名(ニューマン、サントなど)のウェブサイトにアクセスしましたが、コードが見つかりませんでした。誰かがこれらのアルゴリズムの実装を公開していると想像しますが(おそらくツールキットでさえ?)、それを見つけることができないようです。

25
El-ad

コミュニティ検出アルゴリズムは、ライブラリ(Javaの場合は [〜#〜] jung [〜#〜] など)またはツール( Gephi を参照)の一部である場合があります。作成者が新しいメソッドを公開するとき、コードを利用できるようにすることがあります。たとえば、 Louvain および Infomap メソッド。

補足:Girvan-Newmanアルゴリズムが引き続き使用されることもありますが、ほとんどの場合、より高速でより正確な方法に置き換えられています。トピックの概要については、 コミュニティ検出アルゴリズム:比較分析 またはそれより長い グラフでのコミュニティ検出 (103ページ)をお勧めします。

38
job

igraphライブラリ :をご覧ください。

  • 7つのコミュニティ検出アルゴリズム(上記のものを含む):
    • Edgebetweenness(Girvan-Newmanリンクの中心性ベースのアプローチ)、
    • ウォークトラップ(橋-ラタピーランダムウォークベースのアプローチ)、
    • 主要な固有ベクトル(ニューマンのスペクトルアプローチ)、
    • Fast Greedy(Clausetet。alモジュール性最適化)、
    • ラベルの伝播(Raghavanet。al)、
    • ルーバン(Blondelet。al、モジュール性の最適化)、
    • スピングラス(Reichardt-Bornholdt、モジュール性の最適化)、
    • InfoMap(Rosvall-Bergstrom、圧縮ベースのアプローチ)。
  • その他の関連機能:モジュール性の処理、階層構造の処理など。
  • R、C、Pythonで利用可能
  • オープンソース

私の意見では、コミュニティ検出のための最も完全なツールです。詳細については、以下も確認してください。 igraphのコミュニティ検出アルゴリズムの違いは何ですか?

28
Vincent Labatut

SNAPライブラリ(Stanford Network Analysis Platform、 http://snap.stanford.edu/ ))を試すことができます。これには、Modularity、Girvan-Newman、Clauset-が含まれています。 Newman-Mooreアルゴリズム。C++で記述されており、BSDライセンスの下にあります。多くの論文で使用されているため( http://snap.stanford.edu/papers.html を参照)、それは良いはずです。

6
Lingxi

最近、 アルゴリズム を実装しました。これは、定数ポッツモデル、高速ルーバン最適化、および加重および署名付きネットワーク用のInfoMapの信頼できるマップ方程式に基づいています。 ここ はオープンソースJavaプロジェクト+実行可能jarです。

1
Esmailian