Neovis.jsを使用したNeo4jによるグラフの視覚化

データ視覚化のためのグラフアルゴリズムの活用

(William Lyon)(2018年4月16日)

更新:

OReillyの本「ApacheSparkとNeo4jBookのグラフアルゴリズム」が

無料の電子ブックのダウンロード。neo4j.comから

この投稿では、 Neo4j Sandbox インスタンスを使用してTwitterデータセットから開始し、データに対してPageRankとコミュニティ検出を実行します。次に、 Neovis.js を使用してグラフの視覚化をウェブアプリに埋め込む方法を示します。

この投稿では、 PageRank

グラフの視覚化の目標

グラフの視覚化を作成するためのさまざまな動機とツールがあります。これには、グラフを探索するためのツールが含まれます

Neo4jブラウザ。または、の視覚化で分析結果を表示します

。これらは、インタラクティブ(Webアプリまたはスタンドアロンアプリケーションに埋め込まれるもの)、または静的な特定の意味を伝えることを目的としています

Neovis.js であり、Webアプリに埋め込まれたJavaScriptベースのグラフ視覚化を作成するために使用されます。 JavaScript Neo4jドライバーを使用して、Neo4jおよび visと呼ばれる視覚化用のJavaScriptライブラリに接続してデータをフェッチします。グラフの視覚化をレンダリングするための.js 。 Neovis.jsは、PageRankやコミュニティ検出などのグラフアルゴリズムの結果を活用して、プロパティ値をビジュアルコンポーネントにバインドすることにより、視覚化のスタイルを設定することもできます。

このスクリーンキャストは Neovis.js ライブラリを使用して、Neo4jのデータを使用したグラフアルゴリズムの結果に合わせたグラフデータの視覚化を作成する方法。

グラフの視覚化とグラフのアルゴリズム

3つの一般的なものがありますグラフの視覚化をグラフアルゴリズムで強化する方法。具体的には、これらのアルゴリズムの結果に比例してビジュアルコンポーネントをスタイリングする必要があります。

  1. ノードサイズを

    中心性アルゴリズム

    、度、PageRank、中間中心性など。これにより、ネットワーク内の最も重要なノードを一目で確認できます。

  2. コミュニティまたはクラスターを視覚的にグループ化

    ここ。

    TwitterTrollsデータセットのデータモデルにはツイートが含まれています、ユーザー、ハッシュタグ、ツイート、メンション、リツイートで共有されるURL。

グラフデータでは、最も興味深い関係のいくつかが推測される / em>であり、データで直接モデル化されていません。ユーザー-ユーザーリツイートグラフはその一例です。どのユーザーが他のどのユーザーをリツイートしていますか?このリツイートグラフで最も重要なユーザーは誰ですか?お互いに頻繁にリツイートするユーザーのグループはありますか?

ここに投稿されたツイートがありますユーザーによって、その別のユーザーがリツイートしました。これは、ユーザーとユーザーのリツイート関係を意味します。最初のステップは、推測されたリツイート関係を見つけてグラフアルゴリズムを実行することです。

このリツイートネットワークを使用して最も重要なユーザーとコミュニティを見つけるには、最初にすべてのTrollユーザーを見つけて、グラフ内のユーザーを直接接続するRETWEETS関係を作成します。 countプロパティは、ユーザーが他のユーザーをリツイートした回数を表す関係に保存されます:

これらの

関係を作成したら、グラフのこの部分に対してPageRankを実行できます(Cypherクエリを使用することもできます)関係を明示的に作成せずに、投影されたグラフ上でPageRankを実行するには):

write: trueは、PageRankを実行するだけでなく、PageRankスコアを含むノードにpagerankプロパティを追加します。次に、そのプロパティ値を使用してクエリを実行し、PageRankスコアで上位10のトロールアカウントを見つけることができます。

最後に、リツイートネットワークでコミュニティ検出アルゴリズムを実行できます。この場合はラベルの伝播です。

これにより、ノードにcommunityプロパティが追加され、どのコミュニティがアルゴリズムはノードが属すると判断しました。

これで2つのグラフアルゴリズム(PageRankとラベル伝播)を実行しましたが、結果をどのように理解するのでしょうか。視覚化は、データ内の洞察を見つけるのに役立ちます。

Neovis.jsを使用したグラフ視覚化の作成

Neovis.jsで視覚化を作成するには、最初にNeo4jに接続する必要があります。サンドボックスインスタンスの[詳細]タブで、Neo4jインスタンスの接続の詳細を確認できます。

サーバー接続文字列、ユーザー名、パスワードは、Neovisのコンストラクターに渡す構成オブジェクトに含まれます。また、視覚化するノードラベルと、それらのスタイルを設定する方法(ノードのサイズと色を決定するプロパティ)を指定する必要があります。

Neovis.jsは、要素を視覚化するため、構成オブジェクトでその要素のIDを指定する必要があります。また、Neo4jインスタンスに接続する方法、ノードのサイズ、色を決定するために使用するプロパティを指定する必要があります。 、および関係の厚さ。 pagerankプロパティを使用してノードサイズ

を決定し、Neo4jサンドボックスインスタンスからリツイートネットワークのグラフ視覚化を生成するコードを次に示します。色の場合、および関係の厚さのcount関係プロパティ:

視覚化の外観は次のとおりです。

プロジェクトのドキュメントで読むことができる構成オプションがさらにいくつかあります。

リソース

無料ダウンロード:OReilly「ApacheSparkとNeo4jのグラフアルゴリズム」

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です