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

Надеюсь это поможет.

Другие вопросы по тегам