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)