Neo4j, Библиотека науки о графических данных: вычисление промежуточности возвращает отрицательные значения
При вычислении центральности промежуточности моего графика некоторые узлы получают отрицательные значения при использовании "ненаправленного" в качестве ориентации отношений. Бывает в 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 (4 МБ)
На данный момент у меня почти нет идей, запрос должен быть в порядке, и график тоже. Любая помощь будет принята с благодарностью.
1 ответ
Централизованность посредничества только недавно была переведена с альфа-уровня на качество производства в Graph Data Science версии 1.3. На данный момент только предварительная версия 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
Надеюсь это поможет.