2016-04-08 13 views
4

私は1000人のユーザーとそのネットワークの隣接リストを持っています。私はigraphライブラリを使用しています。ネットワークグラフの類似性に基づく上位10人の友人

私が使用してグラフを作成しました:

graph.adjlist(adjlist, mode = c("out", "in", "all", "total"),duplicate = TRUE) 

を次に、各ユーザ間の類似性を見つけるために:

similarity.jaccard(graph, vids, mode, loops) 

は同様に私は類似性を得るためにinvlogweighted, dice etcを使用しています。問題は、各ユーザーのtop 10 most close friends(ネットワークグラフのみ)です。しかし、私は適切な体重を得ていない、すなわち、接続の数は異なるが、ほとんどのユーザは互いに同じ類似性を有する。

私はtop 10 based on weightsを選択できるように、各ユーザー間で異なる重量が必要です。 top 10 friends of a userを取得するのに役立つものがありますか?

答えて

0

ネットワーク構造のみに基づいて類似性が必要なので、SIMRANK、P-RANKなどのようなグローバル構造のアルゴリズムを使用することをお勧めします。これらは、ローカル構造よりもはるかに優れた結果を提供します。余弦。

このペーパーは、それをブラッシュアップするのに良いリソースです。 http://delivery.acm.org/10.1145/2780000/2776894/a15-chen.pdf?ip=1.186.134.39&id=2776894&acc=ACTIVE%20SERVICE&key=045416EF4DDA69D9%2E517DE04875AE9835%2E4D4702B0C3E38B35%2E4D4702B0C3E38B35&CFID=820582987&CFTOKEN=27992587&acm=1508403880_47ba9366223f4aba0e4a217dee002e25

関連する問題