如果您从 R 中使用 igraph,请使用此选项
knn {igraph} | R 文档 |
计算给定顶点的平均最近邻居度,以及顶点度的函数中的相同量
knn(
graph,
vids = V(graph),
mode = c("all", "out", "in", "total"),
neighbor.degree.mode = c("all", "out", "in", "total"),
weights = NULL
)
图 |
输入图。它可以是有向的。 |
vids |
为其执行计算的顶点。 通常它包括所有顶点。请注意,如果此处未给出所有顶点,则 ‘ |
模式 |
字符常量,指示在有向图中要考虑的邻居类型。 |
neighbor.degree.mode |
在有向图中要平均的度类型。 |
weights |
权重向量。如果图具有 |
请注意,对于零度顶点,‘knn
’ 中的答案是 NaN
(零除以零),如果给定的度在网络中从未出现,则 ‘knnk
’ 也是如此。
加权版本计算邻居度的加权平均值,如下所示
k_nn_u = 1/s_u sum_v w_uv k_v
,
其中 s_u = sum_v w_uv
是顶点 u
的入射边权重的总和,即其强度。 总和运行在顶点 u
的邻居 v
上,如 mode
所示。 w_uv
表示加权邻接矩阵, k_v
是邻居的度,由 neighbor_degree_mode
指定。
一个包含两个成员的列表
knn |
一个数值向量,给出 |
knnk |
一个数值向量,其长度是图中最大的(总)顶点度。 第一个元素是度为 1 的顶点的平均最近邻居度,依此类推。 |
Gabor Csardi csardi.gabor@gmail.com
Alain Barrat, Marc Barthelemy, Romualdo Pastor-Satorras, Alessandro Vespignani: The architecture of complex weighted networks, Proc. Natl. Acad. Sci. USA 101, 3747 (2004)
# Some trivial ones
g <- make_ring(10)
knn(g)
g2 <- make_star(10)
knn(g2)
# A scale-free one, try to plot 'knnk'
g3 <- sample_pa(1000, m=5)
knn(g3)
# A random graph
g4 <- sample_gnp(1000, p=5/1000)
knn(g4)
# A weighted graph
g5 <- make_star(10)
E(g5)$weight <- seq(ecount(g5))
knn(g5)