You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

igraph中完全图的Jaccard相似度为何未达预期最大值1?

问题原因分析

你忽略了完全图中不同顶点的邻居集合并不完全相同这一关键细节。

在你创建的5顶点完全图里:

  • 顶点1的邻居是{2,3,4,5}(因loops=FALSE,排除自身)
  • 顶点2的邻居是{1,3,4,5}(同样排除自身)

按照igraph文档定义的Jaccard相似度公式:

两个顶点的Jaccard相似度系数是共同邻居数除以至少是其中一个顶点邻居的顶点数。

计算顶点1和顶点2的相似度:

  • 共同邻居是{3,4,5},共3个
  • 两者邻居的并集是{1,2,3,4,5},共5个(顶点1的邻居包含2,顶点2的邻居包含1,合并后覆盖所有顶点)

代入公式得到 3/5 = 0.6,和代码运行结果完全匹配。

只有当两个顶点的邻居集合完全重合时,Jaccard相似度才会等于1。比如构造两个共享完全相同邻居的顶点:

library(igraph)
# 顶点1和2仅连接3、4,彼此无连接
G <- graph_from_edgelist(cbind(c(1,1,2,2), c(3,4,3,4)), directed=FALSE)
similarity.jaccard(G, loops=FALSE)

运行后会看到顶点1和2的相似度为1,符合预期。

内容的提问来源于stack exchange,提问作者Zachary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 17:06:17