10

Networkx では、ノードの色に基づいてノードをクラスター化するにはどうすればよいですか? たとえば、100 個のノードがあり、そのうちのいくつかは黒に近く、他は白に近いです。グラフ レイアウトでは、似たような色のノードを互いに近くに置き、色が大きく異なるノードを互いに近づけないようにします。どうやってやるの?基本的に、エッジの重みは spring_layout のレイアウトにどのように影響しますか? NetworkX でそれができない場合、レイアウトの計算に役立つ他のツールはありますか?

ありがとう

4

1 に答える 1

8

わかりました、簡単な手順に従って、そのグラフの隣接行列 W を構築しましょう: 隣接する頂点 i 番目と j 番目の両方が同じ色である場合、それらの間のエッジの重み W_{i,j} は大きな数です (後で実験で調整します)、そうでなければ、それはあなたが類推して理解するいくつかの小さな数です.

ここで、行列のラプラシアンを L = D - W と書きましょう。ここで、D は要素 d_{i,i} が W i 番目の行の和に等しい対角行列です。

ここで、大きな調整ウェイトを持つ頂点の f 値が近い場合、fLf^T (f は任意のベクトル) の値が小さいことを簡単に示すことができます。i を使用してグラフの座標系を設定する方法として考えることができます。頂点は 1D 空間で f_i 座標を持ちます。

ここで、たとえば k-means が機能するユークリッド空間内の点の集合としてグラフを表現するようなベクトル f^k をいくつか選択しましょう。これで、最初のグラフの i 番目の頂点が得られました。座標 f^1_i、f^2_i、... を持ち、最初のグラフで同じ色の隣接するベクトルも、この新しい座標空間で近くなります。

ベクトル f をどのように選択するかについての質問は単純なものです。行列 L の固有ベクトルを、小さいがゼロではない固有値に対応する f として取るだけです。

これはスペクトル クラスタリングと呼ばれるよく知られた手法です。

詳細 な資料: 統計学習の要素: データ マイニング、推論、および予測。トレバー・ハスティ、ロバート・ティブシラニ、ジェローム・フリードマン

これは、著者のページhttp://www-stat.stanford.edu/~tibs/ElemStatLearn/から無料で入手できます。

于 2012-08-04T18:31:43.123 に答える