Коэффициент Жакара смежных вершин в igraph R - PullRequest
0 голосов
/ 11 октября 2018

Хорошо известно, что коэффициент подобия Жакара двух вершин - это число общих соседей, деленное на число вершин, которые являются соседями, по крайней мере, одной из двух рассматриваемых вершин.В Igraph R есть функция Similarity.jaccard (), которая вычисляет определенный выше коэффициент для произвольных вершин в графе.Я хочу вычислить только коэффициенты Жакара для смежных вершин (т. Е. Так называемый коэффициент Жакара для ребра) и хочу получить мои результаты в виде вектора длины, равной количеству ребер рассматриваемого графа.Я нашел решение такой проблемы для библиотеки Igraph C, с которой я не знаком.Я хочу получить такие результаты в Играф Р. Как решить эту проблему?

1 Ответ

0 голосов
/ 12 октября 2018

Вы можете сделать это, создав функцию для вычисления подобия jaccard для концов одного ребра и применив ее ко всем ребрам.Поскольку вы не предоставляете никаких данных, я проиллюстрирую это произвольным графиком.

График произвольного примера

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

Example graph

Теперь примените функцию подобия 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

Вы можете проверить некоторые точки данных.Например, седьмое ребро проходит между вершинами 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
...