當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python NetworkX simrank_similarity用法及代碼示例


本文簡要介紹 networkx.algorithms.similarity.simrank_similarity 的用法。

用法:

simrank_similarity(G, source=None, target=None, importance_factor=0.9, max_iterations=1000, tolerance=0.0001)

返回圖中節點的 SimRank 相似度 G

SimRank 是一個相似性度量,表示“如果兩個對象被相似對象引用,則認為它們相似。” [1]。

論文中的pseudo-code定義是:

def simrank(G, u, v):
    in_neighbors_u = G.predecessors(u)
    in_neighbors_v = G.predecessors(v)
    scale = C / (len(in_neighbors_u) * len(in_neighbors_v))
    return scale * sum(simrank(G, w, x)
                       for w, x in product(in_neighbors_u,
                                           in_neighbors_v))

其中G 是圖形,u 是源,v 是目標,C 是介於 0 和 1 之間的浮點衰減或重要性因子。

用於確定節點相似度的SimRank算法在[2]中定義。

參數

GNetworkX 圖

NetworkX 圖

source節點

如果指定,則返回的字典將圖中的每個節點 v 映射到 sourcev 之間的相似性。

target節點

如果同時指定sourcetarget,則返回sourcetarget之間的相似度值。如果指定了 target 但未指定 source,則忽略此參數。

importance_factor浮點數

間接鄰居相對於直接鄰居的相對重要性。

max_iterations整數

最大迭代次數。

tolerance浮點數

用於檢查收斂性的容錯。當算法的迭代發現沒有相似度值變化超過這個量時,算法停止。

返回

similarity字典或浮點數

如果 sourcetarget 都是 None ,則返回字典字典,其中鍵是節點對,值是節點對的相似性。

如果source 不是Nonetarget 是,這將返回字典映射節點到source 和該節點的相似性。

如果 sourcetarget 都不是 None ,則返回給定節點對的相似度值。

參考

1

https://en.wikipedia.org/wiki/SimRank

2

G. Jeh and J. Widom. “SimRank: a measure of structural-context similarity”, In KDD’02: Proceedings of the Eighth ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, pp. 538-543. ACM Press, 2002.

例子

>>> G = nx.cycle_graph(2)
>>> nx.simrank_similarity(G)
{0: {0: 1.0, 1: 0.0}, 1: {0: 0.0, 1: 1.0}}
>>> nx.simrank_similarity(G, source=0)
{0: 1.0, 1: 0.0}
>>> nx.simrank_similarity(G, source=0, target=0)
1.0

該函數的結果可以通過使用圖的節點順序來確定哪些行和列代表每個節點,可以轉換為表示SimRank矩陣的numpy數組。節點的其他排序也是可能的。

>>> import numpy as np
>>> sim = nx.simrank_similarity(G)
>>> np.array([[sim[u][v] for v in G] for u in G])
array([[1., 0.],
       [0., 1.]])
>>> sim_1d = nx.simrank_similarity(G, source=0)
>>> np.array([sim[0][v] for v in G])
array([1., 0.])

相關用法


注:本文由純淨天空篩選整理自networkx.org大神的英文原創作品 networkx.algorithms.similarity.simrank_similarity。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。