panther_similarity#

panther_similarity(G, source, k=5, path_length=5, c=0.5, delta=0.1, eps=None, weight='weight')[source]#

返回图 G 中节点相对于源节点 source 的 Panther 相似度。

Panther 是一种相似度度量,它认为“如果两个对象经常出现在相同的路径上,则认为它们是相似的。” [1]

参数:
GNetworkX 图

一个 NetworkX 图

source节点

用于查找最相似的 k 个其他节点的源节点

kint (默认值 = 5)

要返回的最相似节点的数量。

path_lengthint (默认值 = 5)

随机生成路径的长度应为多少([1] 中的 T

cfloat (默认值 = 0.5)

用于缩放要生成的随机样本路径数量的通用正常量。

deltafloat (默认值 = 0.1)

相似度 \(S\) 不是 (R, phi) 的 epsilon 近似值的概率,其中 \(R\) 是随机路径的数量,\(\phi\) 是从集合 \(A \subseteq D\) 中采样的元素的某种概率,其中 \(D\) 是域。

epsfloat 或 None (默认值 = None)

误差界限。根据 [1],一个好的值是 sqrt(1/|E|)。因此,如果未提供值,将使用推荐的计算值。

weightstring 或 None,可选 (默认值=”weight”)

保存用作权重的数值的边属性的名称。如果为 None,则每条边的权重为 1。

返回值:
similarity字典

节点到相似度分数(浮点数)的字典。注意:返回的字典中将不包含自相似度(即源节点 source)。因此,对于 k = 5,将返回一个包含前 4 个节点及其相似度分数的字典。

抛出:
NetworkXUnfeasible

如果 source 是一个孤立节点。

NodeNotFound

如果 source 不在 G 中。

注意

忽略 G 中的孤立节点。

参考文献

[1] (1,2,3)

Zhang, J., Tang, J., Ma, C., Tong, H., Jing, Y., & Li, J. Panther: Fast top-k similarity search on large networks. In Proceedings of the ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (Vol. 2015-August, pp. 1445–1454). Association for Computing Machinery. https://doi.org/10.1145/2783258.2783267.

示例

>>> G = nx.star_graph(10)
>>> sim = nx.panther_similarity(G, 0)