【问题标题】:Jaccard coefficient of adjacent vertices in igraph Rigraph R中相邻顶点的Jaccard系数
【发布时间】:2018-10-10 21:00:26
【问题描述】:

众所周知,两个顶点的 Jaccard 相似性系数是公共邻居的数量除以与所讨论的两个顶点中的至少一个顶点相邻的顶点数量。在 Igraph R 中有函数similarity.jaccard() 计算图中任意顶点的上述系数。我只想计算相邻顶点的 Jaccard 系数(即边的所谓 Jaccard 系数),并且我想以长度等于所考虑图形的边数的向量的形式获得结果。我为我不熟悉的 Igraph C 库找到了此类问题的解决方案。我想在 Igraph R 中得到这样的结果。如何解决这个问题?

【问题讨论】:

    标签: r igraph


    【解决方案1】:

    您可以通过创建一个函数来计算单个边的末端的 Jaccard 相似度并将其应用于所有边来实现此目的。由于您不提供任何数据,因此我将使用任意图表进行说明。

    任意示例图

    library(igraph)
    set.seed(1234)
    g = erdos.renyi.game(10,0.3)
    plot(g)
    

    现在对所有边应用 Jaccard 相似度函数

    sapply(E(g),  
        function(x) similarity.jaccard(g, as.vector(ends(g,x)))[1,2])
     [1] 0.0000000 0.0000000 0.0000000 0.4000000 0.1666667 0.2000000 0.2000000
     [8] 0.2500000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
    

    您可以测试一些数据点。例如,第 7 条边在顶点 2 和 8 之间,jaccard 相似度为 0.2

    E(g)[7]
    + 1/13 edge:
    [1] 2--8
    similarity.jaccard(g, c(2,8))
         [,1] [,2]
    [1,]  1.0  0.2
    [2,]  0.2  1.0
    

    【讨论】:

    • 感谢您的回答。这个解决方案非常适合我的图表。
    猜你喜欢
    • 2015-07-21
    • 1970-01-01
    • 1970-01-01
    • 2013-01-21
    • 2017-10-19
    • 2018-04-14
    • 2015-11-20
    • 2020-07-30
    • 1970-01-01
    相关资源
    最近更新 更多