从曲线图文档中可以看到:"两个顶点的Jaccard相似系数是公共邻居的数量除以至少两个顶点中的一个的邻居的顶点的数量."因此,当两个顶点具有相同的邻居时,它应该达到最大值1.此外,在一个所有顶点都有相同邻居(即所有其他顶点)的完全图中,所有Jaccard相似度都应该为1.然而:

library(igraph)
G <- erdos.renyi.game(5, 1, "gnp")  #A complete graph
similarity.jaccard(G, loops = FALSE)
     [,1] [,2] [,3] [,4] [,5]
[1,]  1.0  0.6  0.6  0.6  0.6
[2,]  0.6  1.0  0.6  0.6  0.6
[3,]  0.6  0.6  1.0  0.6  0.6
[4,]  0.6  0.6  0.6  1.0  0.6
[5,]  0.6  0.6  0.6  0.6  1.0

我错过了什么吗?为什么这些具有相同邻居的顶点的贾卡德相似度是0.6而不是1?

推荐答案

这里的关键是loops参数

循环:是否将顶点本身包括在相邻集合中.

IOW,loop = TRUE的每个顶点都指向自己作为邻居,在这种情况下,对于问题中的图,贾卡德相似性处处为1.

对于loop = FALSE:每对顶点都有3个公共邻居(不包括它们自己)和5个与其中至少一个顶点相邻的顶点.例如,顶点1和顶点2:顶点1有{2, 3, 4, 5}个邻居,顶点2有{1, 3, 4, 5}个邻居.贾卡德相似性的分子是两个集合的交集的基数|{3, 4, 5}| = 3.分母是两个集合的并的基数|{1, 2, 3, 4, 5}| = 5.

对于loop = TRUE:每对顶点有5个公共邻居(包括它们自己)和5个顶点是其中至少一个的邻居.在同一个例子中,顶点1和顶点2:顶点1有{1, 2, 3, 4, 5}个邻居,顶点2有{1, 2, 3, 4, 5}个邻居.Jaccard相似性的分子是两个集合的交集的基数,|{1, 2, 3, 4, 5}| = 5.分母是两个集合的并集的基数,|{1, 2, 3, 4, 5}| = 5.

R相关问答推荐

在R中替换函数中的特定符号

使用gcuminc,如何使用逗号格式化风险表?

使用R闪光显示所有数据点作为默认设置

使用rest从header(h2,h3,table)提取分层信息

线性模型斜率在减少原始数据时提供NA

使用`Watch()`和`renderUI()`时,不再满足仍出现在SHILINY AFTER条件中的条件输入

哪一行和行和 Select 特定行,但是考虑到Nas

从圆到R中的多边形的标绘雷达图

有没有办法使用ggText,<;Sub>;&;<;sup>;将上标和下标添加到同一元素?

用R ggplot2求上、下三角形中两个变量的矩阵热图

在R函数中使用加号

您是否可以将组添加到堆叠的柱状图

从非重叠(非滚动)周期中的最新数据向后开窗并在周期内计数

悬崖三角洲超大型群数计算导致整数溢出

将标识符赋给事件序列,避免错误观察

使用geom_iles在一个切片中包含多个值

有没有办法一次粘贴所有列

如何调整一个facet_work()面板内的框图和移动标签之间的水平宽度?

使用一个标签共享多个组图图例符号

如何在R中的两列以上使用联合(&U)?