コミュニティ発見アルゴリズムに精通しているなら、この Python ライブラリを見逃すことはできません。 LouvainアルゴリズムやGirvan-Newmanアルゴリズムなどのさまざまなコミュニティ発見アルゴリズムをカバーし、可視化機能も備えています。 ネットワークは、密接に接続された多数のノードで構成されており、異なるノード間の接続の程度に応じて、ネットワークは異なるクラスターで構成されていると考えることもできます。クラスター内のノードはより密接に接続されていますが、異なるクラスター間の接続は比較的疎です。このようなクラスターは、ネットワーク内のコミュニティ構造と呼ばれます。 これから派生したコミュニティ検出アルゴリズムは、ネットワーク内のコミュニティ構造を検出するために使用されます。このようなアルゴリズムには、Louvain アルゴリズム、Girvan-Newman アルゴリズム、Bron-Kerbosch アルゴリズムなどがあります。 最近、Machine Heart は、グラフ内のコミュニティ構造を検出できる、communities という Python ライブラリを GitHub で発見しました。このライブラリは、ソフトウェア エンジニアの Jonathan Shobrook によって作成されました。 プロジェクトアドレス: https://github.com/shobrook/communities まず、ライブラリは次のコミュニティ検出アルゴリズムを実装できます。
次に、ユーザーはコミュニティ ライブラリを使用して、上記のアルゴリズムを視覚化することもできます。次の図は、Zachary の空手クラブ ネットワークにおける Louvain アルゴリズムの視覚化結果を示しています。 このライブラリのインストール方法も非常に簡単です。コミュニティをインストールするには、pip を使用します。コードは次のとおりです。
多くのネットユーザーがこの Python ライブラリを高く評価し、試してみると述べました。 アルゴリズムの詳細な説明 ルーヴァンアルゴリズム
このアルゴリズムは、「大規模ネットワークにおけるコミュニティの高速展開」という記事 (略称 Louvian) から引用したものです。 モジュール性に基づくコミュニティ発見アルゴリズムとして、Louvain アルゴリズムは効率性と有効性の面で比較的優れたパフォーマンスを発揮し、階層的なコミュニティ構造を発見することができます。その最適化目標は、グラフ属性構造 (コミュニティ ネットワーク) 全体のモジュール性を最大化することです。 Louvain アルゴリズムは、グラフのモジュール性を最大化するコミュニティを貪欲に検索します。グラフのグループ内エッジの密度が高く、グループ間エッジの密度が低い場合、そのグラフはモジュール グラフと呼ばれます。 サンプルコードは次のとおりです。
ガーバン・ニューマンアルゴリズム
このアルゴリズムは、「社会的および生物学的ネットワークにおけるコミュニティ構造」という記事から引用したものです。 Girvan-Newman アルゴリズムは、エッジを繰り返し削除して、より接続されたコンポーネントを作成します。各コンポーネントはコミュニティとして扱われ、モジュール性をこれ以上増加できなくなった時点でアルゴリズムはエッジの削除を停止します。 サンプルコードは次のとおりです。
階層的クラスタリング
階層的クラスタリングは、ボトムアップの階層的クラスタリング アルゴリズムを実装します。各ノードは独自のコミュニティから始まり、階層が構築されるにつれて、最も類似したコミュニティが統合されます。モジュール化がこれ以上進展しなくなるまで、コミュニティは統合されます。 サンプルコードは次のとおりです。
スペクトルクラスタリング
このタイプのアルゴリズムでは、隣接行列の固有値にコミュニティ構造に関する情報が含まれていると想定しています。 サンプルコードは次のとおりです。
ブロン・ケルボッシュアルゴリズム
最大クリーク検出のための Bron-Kerbosch アルゴリズムの実装。グラフ内の最大クリークは、完全なグラフを形成するノードのサブセットであり、このサブセットにノードを追加すると、完全ではなくなります。クリークはグラフ内で最も密接に接続されたノードのグループであるため、最大のクリークをコミュニティと見なすのが妥当です。ノードは複数のコミュニティのメンバーになることができるため、アルゴリズムは重複するコミュニティを識別することがあります。 サンプルコードは次のとおりです。
視覚化 描画
グラフを視覚化し、ノードを所属するコミュニティごとにグループ化し、色分けします。プロットを表す matplotlib.axes.Axes を返します。サンプルコードは次のとおりです。
視覚化は次のようになります。 ルーヴァンアルゴリズムのアニメーションイラスト
グラフに Louvain アルゴリズムを適用すると、アニメーション化されたグラフィック表示を実装できます。各ノードの色は、そのノードが属するコミュニティを表し、同じコミュニティ内のノードはクラスター化されます。 サンプルコードは次のとおりです。
アニメーション画像を以下に示します。 |
<<: 世界を驚かせたNASAの火星無人機はどのように設計されたのか?
>>: AI面接官はこんなに簡単に騙される!本棚の写真を動画の背景として使用すると好感度が 15% 上昇します
デジタル化が進むにつれ、消費者は便利なインターネットサービスを体験できるようになり、携帯電話でタオバ...
1月17日、新世代の大規模言語モデルShusheng Puyu 2.0(InternLM2)が正式に...
はじめに:強力な人工知能の開発は近年の関心事となっています。単にラベル付けされたデータではなく、人間...
レコメンデーション システムは、ディープラーニングとグラフ ニューラル ネットワークの影響を受けて大...
この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...
AI プロジェクトを構想から実装に移行することは悪循環ですが、解決策は 1 つしかありません。悪循環...
Googleは本当に全力を尽くしています。 AlphaGoとGPT-4に似た大規模モデルを組み合わせ...
最近、中国労働・社会保障科学院の莫容研究チームが発表した研究結果によると、わが国における人工知能の雇...
今日、多くの人がスマートホームが提供するものを活用したいと考えています。スマートホームは、快適で便利...
海外メディアの報道によると、ロボットは多くのスポーツや活動で優れているが、1つのタスクだけを実行する...