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]中定義。
- G:NetworkX 圖
NetworkX 圖
- source:節點
如果指定,則返回的字典將圖中的每個節點
v
映射到source
和v
之間的相似性。- target:節點
如果同時指定
source
和target
,則返回source
和target
之間的相似度值。如果指定了target
但未指定source
,則忽略此參數。- importance_factor:浮點數
間接鄰居相對於直接鄰居的相對重要性。
- max_iterations:整數
最大迭代次數。
- tolerance:浮點數
用於檢查收斂性的容錯。當算法的迭代發現沒有相似度值變化超過這個量時,算法停止。
- similarity:字典或浮點數
如果
source
和target
都是None
,則返回字典字典,其中鍵是節點對,值是節點對的相似性。如果
source
不是None
但target
是,這將返回字典映射節點到source
和該節點的相似性。如果
source
和target
都不是None
,則返回給定節點對的相似度值。
參數:
返回:
參考:
- 1
- 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.])
相關用法
- Python NetworkX simulated_annealing_tsp用法及代碼示例
- Python NetworkX simple_cycles用法及代碼示例
- Python NetworkX single_source_dijkstra_path_length用法及代碼示例
- Python NetworkX single_source_bellman_ford用法及代碼示例
- Python NetworkX single_source_bellman_ford_path用法及代碼示例
- Python NetworkX single_source_bellman_ford_path_length用法及代碼示例
- Python NetworkX single_source_shortest_path_length用法及代碼示例
- Python NetworkX single_source_dijkstra用法及代碼示例
- Python NetworkX single_source_shortest_path用法及代碼示例
- Python NetworkX single_source_dijkstra_path用法及代碼示例
- Python NetworkX single_target_shortest_path_length用法及代碼示例
- Python NetworkX single_target_shortest_path用法及代碼示例
- Python NetworkX subgraph_view用法及代碼示例
- Python NetworkX shortest_path用法及代碼示例
- Python NetworkX square_clustering用法及代碼示例
- Python NetworkX soft_random_geometric_graph用法及代碼示例
- Python NetworkX sets用法及代碼示例
- Python NetworkX shell_layout用法及代碼示例
- Python NetworkX sudoku_graph用法及代碼示例
- Python NetworkX snap_aggregation用法及代碼示例
- Python NetworkX set_edge_attributes用法及代碼示例
- Python NetworkX stochastic_block_model用法及代碼示例
- Python NetworkX symmetric_difference用法及代碼示例
- Python NetworkX selfloop_edges用法及代碼示例
- Python NetworkX second_order_centrality用法及代碼示例
注:本文由純淨天空篩選整理自networkx.org大神的英文原創作品 networkx.algorithms.similarity.simrank_similarity。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。