igraph 中的 cluster_walktrap 函数如何处理权重?

How are weights treated in the cluster_walktrap function in igraph?

我正在研究戏剧角色网络。节点代表字符,边代表他们对彼此的讲话。它是一个有向网络,边权重等于源字符对目标说的单词数。

在iGraph中,边权有时表示距离,有时表示接近。例如,为了获得 betweenness 的正确结果,我需要反转边缘权重,这样一个角色对另一个角色说的词越多,他们在网络中的 'closer':

edgeData <- data.frame(source, target, weight = numWords)
graph <- graph_from_data_frame(edgeData)
betweenness(graph, weights = 1/E(graph)$weight)

现在想研究我的剧本的社区结构,不知道如何正确使用算法。我是否应该将边权重视为距离,并反转权重,以便说话更多的角色彼此 'closer'?

cluster_walktrap(graph, weights = 1/E(graph)$weight)

或者我应该将权重视为权重,并在默认状态下使用该算法?

cluster_walktrap(graph)

感谢您的帮助!

cluster_walktrap(graph)可以。社区检测,权重是重量,不是距离。

我在计算一些图形指标的时候也是一头雾水。

但是如果你想计算最短路径(或其他),你应该使用 weights = 1/E(graph)$weight

你可以设计一个demo。