跨網路社群相似性

2021-10-23 01:22:12 字數 1761 閱讀 3118

跨網路指的是兩個不同的網路,在研究不同網路使用者對齊的時候,需要進行社群相似行的判斷,中間也查了一些資料,想到乙個解決方法用種子節點。

下面是我寫的乙個小demo

先把種子節點和要兩個網路的社群劃分好

net1_anchor_known_list =

['abc'

,'bc'

,'cc',2

,3,7

]#net1種子節點

net2_anchor_known_list =

['abc'

,'bc'

,'cc',2

,3,7

]#net2種子節點

net1_communities =[[

'abc'

,'tom'

,'jack'

'bc'

,'cc'

,'d'],

[2,4

,7],

[3,5

]]net2_communities =[[

'a',

'bc'

,'cc'

,'tom',5

,7],

[2,3

,'jack'

]]

然後將有共同種子節點的社群一一對應起來,以便於接下來求解相似性。

seed_pair =

for i in

range

(len

(net1_communities)):

for j in net1_communities[i]

:if j in net1_anchor_known_list:

for k in

range

(len

(net2_communities)):

if j in net2_communities[k]

: seed_pair[

str(i+1)

+str

(k+1)+

'社群']=

(net1_communities[i]

,net2_communities[k]

)

seed_pair
再用種子節點對一一對應後,得到相對應的社群,最後就可以利用種子節點共同個數來求解相似性了

for i in seed_pair.items():

num_counter =

0for j in f_anchor_known_list:

if j in i[1]

[0]and j in i[1]

[1]:

num_counter +=

1 sim =

2*num_counter/

(len

(i[1][

0])+

len(i[1]

[1])

)print

('第{}的相似度為'

.format

(i[0

],sim)

)

第11社群的相似度為0.182

第22社群的相似度為0.333

第21社群的相似度為0.222

第32社群的相似度為0.400

最後就可以求解出,跨網路的社群相似性了。

相似性度量

二元向量的相似性度量 每一維都少的資訊量,主要是0,1等有 or 沒有屬性 dice 2 x y x y 2保證 0,1 維數不一致時,差別大。jaccard x y x y 交疊程度小時,值較低 交疊係數 x y min 互相之間的包含性,1 cosine x y 根號 x y 對於實值 只有co...

資料相似性

首先模擬一些資料出來 假設有這樣一些id是1 5的條目,然後有幾個人對他們看過的條目進行了評分 1 5 那麼我們可能有這樣的一組資料,格式是 人名 a b c 給定兩個人,如何計算他們的相似度,比如,在b和c裡,誰和a的評分最相似?給出一些方法 1 簡單匹配係數 matching coefficie...

相似性度量

一般而言,定義乙個距離函式d x,y 需要滿足以下幾個準則 1.d x,x 0 到自己的距離為0 2.d x,y 0 距離要非負 3.對稱性,d x,y d y,x 如果a到b距離是a,那麼b到a的距離也應該是a 4.三角形法則 兩個之和大於第三邊 d x,k d k,y d x,y 滿足這4個條件...