最近在做鍊路預測,參考了一些資料寫了一個局部随機遊走,遊走步數為節點總數的100倍。初學者,程式寫的很爛,有待提高。。。
def LRW(vnow,vtar):#源節點,目标節點
d = {}
d[vnow] = 1
for step in range(steps):#随機遊走步數為節點的100倍
neighbors = G.neighbors(vnow)#擷取某個節點的鄰居,networkx建立的圖
vnow = neighbors[random.randint(0,len(neighbors)-1)]#随機選擇鄰居節點
if d.has_key(vnow):#用字典記錄每個節點到達的次數
d[vnow] += 1
else :
d[vnow] = 0
d[vnow] += 1
value = d[vtar]/float(steps)#每個節點統計的步數除以總步數,等于到達機率
return value