Neo4j,图数据科学图书馆:计算介数 returns 负值

Neo4j, Graph Data Science Library: Calculating betweenness returns negative values

在计算我的图的介数中心性时,某些节点在使用 'Undirected' 作为关系方向时会收到负值。发生在带有 gds 1.2.2 的 Neo4j 4.0.6 中。但也在旧版本中。该图本身应该没问题,将其导出到 Gephi,然后计算介数因子 returns 所有正值。

这是查询:

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

结果:Negative Values after betweenness calculation

使用的图表:graphml file (4MB)

此时我几乎没有想法,查询应该没问题,图表也应该没问题。任何帮助将不胜感激。

图数据科学 1.3 版中的中间性中心性最近刚刚从 alpha 层提升到生产质量。目前只有1.3的预览版。 GDS 在 GitHub 上可用。我已经测试了您的数据集,看来新版本的问题不会持续存在。所以现在,您可以使用 GDS 1.3 版本的预览版,或者等待几天,直到 GA 版本可用。唯一改变的是输出语法,其中 centrality 已重命名为 score。

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

希望对您有所帮助。