在计算图表的介数中心性时,当使用“无向”作为关系方向时,某些节点会收到负值。发生在 Neo4j 4.0.6 和 gds 1.2.2 中。但也适用于旧版本。图本身应该没问题,将其导出到 Gephi,然后计算介数因子返回所有正值。
这是查询:
CALL gds.alpha.betweenness.stream({
nodeProjection: 'poi',
relationshipProjection: {
similar: {
type: 'similar',
orientation: 'UNDIRECTED'
}
}
})
YIELD nodeId, centrality
RETURN gds.util.asNode(nodeId).OsmID AS id, centrality
ORDER BY centrality ASC
介数计算后结果为负值:
使用的图表:graphml 文件(4MB)
Betweenness 中心性最近刚刚在图数据科学 1.3 版本中从 alpha 层提升到生产质量。目前只有1.3的预览版本。 GDS 可在 GitHub 上获取。我已经测试了您的数据集,看来在新版本中该问题不再存在。因此,目前您可以使用 GDS 1.3 版本的预览版,也可以等待几天直到 GA 版本推出。唯一改变的是输出语法,其中中心性已重命名为分数。
CALL gds.betweenness.stream({
nodeProjection: '*',
relationshipProjection: {
similar: {
type: 'similar',
orientation: 'UNDIRECTED'
}
}
})
YIELD nodeId, score
RETURN gds.util.asNode(nodeId).OsmID AS id, score
ORDER BY score ASC