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