0

データ内の「コミュニティ」を視覚的に識別できるように、2次元のバイナリ行列を並べ替える方法を探しています。私のデータセットは、グループメンバーシップ(つまり、人々と彼らが属するグループのリスト)に基づいています。例えば:

   G1 G2 G3 G4
P1 1 1  
P2 1 1  
P3 1 1
P4 1 1

私はこれを与えるソートアルゴリズムを探しています:

   G1 G3 G2 G4
P1 1 1     
P2 1 1    
P3 1 1
P4 1 1

「並べ替えられた」データの別の例は、次の場所にあります。http: //mbostock.github.com/protovis/ex/matrix.html この例では、作成者は並べ替えに使用される「コミュニティ検出アルゴリズム」を参照しています。ディメンション間にメンバーシップがないため、私のデータは異なります(つまり、最初のディメンション(人)は2番目のディメンション(グループ)のメンバーです。

これについて詳細に説明している論文を見つけました:http://ricerca.mat.uniroma3.it/users/colanton/docs/visual.pdf(警告:PDF)

要約すると、私はメンバーシップデータを取得し、データ内の「コミュニティ」を見つけようとして、それを視覚的に表現しています。

私はここでいくつかの助けになるかもしれない同様の議論を見つけました: バイナリ2Dマトリックスのソート? グラフでコミュニティを検出するためのアルゴリズムの実装はありますか?

4

1 に答える 1

-1

私がこれまでに見た中で最高の解決策はここにあります:http: //matthewlincoln.net/2014/12/20/adjacency-matrix-plots-with-r-and-ggplot2.html

アプローチを要約すると:

良い代替案の1つは、ネットワーク関係データをエンコードする隣接行列を視覚化することです。たとえば、セルABは、ノードAをノードBに接続するエッジを記述します。MikeBostockは、Jacques BretinのLesMisérables共起ネットワークデータセットを使用して、これをD3に実装しました。 。ggplot2を使用して隣接行列の視覚化を生成することもかなり簡単ですが、弾丸を噛み、最後に順序付けられた要素を操作する方法を理解する必要があります。

次のような行列プロットを作成できます。 ここに画像の説明を入力してください

そしてそれをこれに分類します: ここに画像の説明を入力してください

于 2015-07-14T21:55:24.580 に答える