1

Walktrap コミュニティ検出メソッドを使用して、多数 (この場合は 19) のクラスターを返します。これらのクラスターの 1 つ以上に属するメンバーのリストがあります。

  1. 各クラスターでメンバーの存在を検索し、見つかった一致のパーセンテージを返すメソッドが必要です。(例: cluster[0] = 0%, cluster[1] =Y%.....cluster[18]=Z%) したがって、リストのメンバーを表す最適なクラスターを選択します。

  2. 最適なクラスターが見つかったら、最適なクラスターのメンバー数を数え、元の (19-1) クラスターからサイズ (メンバー数) が最も近い別のクラスターを選択する方法が必要です。

     library(igraph)
     edges <- read.csv('http://dl.dropbox.com/u/23776534/Facebook%20%5BEdges%5D.csv')
     list<-read.csv("http://dl.dropbox.com/u/23776534/knownlist.csv")
     all<-graph.data.frame(edges)
     summary(all)
    all_wt<- walktrap.community(all, steps=6,modularity=TRUE,labels=TRUE)
    all_wt_memb <- community.to.membership(all,all_wt$merges,steps=which.max(all_wt$modularity)-1)
    all_wt_memb$csize
    
    >[1] 176  13 204  24   9 263  16   2   8   4  12   8   9  19  15   3   6   2   1
    
4

2 に答える 2

1

この%in%関数は、次のように使用a %in% bすると、 vector のどの要素が vectoraにも存在するかを判断しbます。したがって、クラスターごとに、

  • そのクラスターのメンバーを抽出します
  • 関心のあるメンバーのリストが与えられた場合、どのメンバーがこのクラスターであるかを計算します。これにより%in%、ブール ベクトルが返されます。
  • Boolean ベクトルを使用sum()して、真の要素の数をカウントできます (つまり、このクラスターに存在する初期ベクトルの要素の数)。
  • (オプション) クラスターの長さで正規化して、対象のリストで構成されているこのクラスターの割合を取得するか、作成したリストの長さで正規化して、リスト内のメンバーの数を示すことができます。このクラスターに存在します。

for()またはapplyバリアントを使用して、各クラスターをループできます。

次に、指定all_wt_memb$csizeされた 、ターゲットである指定された値が得られ、最も近い数値を見つけたいと思うでしょう。このリンクを参照してください。ただし、最小絶対差を計算しているだけです。

x=c(1:100)
your.number=5.43
which(abs(x-your.number)==min(abs(x-your.number)))
于 2012-03-27T21:59:56.517 に答える
0

これにより、2 番目に大きい all_wt_memb のインデックスが得られます。

dat <- all_wt_memb$csize
order( dat- dat[which.max(dat)])[ length(dat)-1]
[1] 3
于 2012-03-27T21:58:41.637 に答える