#neo4j
#neo4j
Вопрос:
В моем наборе данных есть следующие переменные: клиент, Продавец, возраст, пол, категория, сумма, мошенничество
Мне нужно сгенерировать из него следующие функции neo4j:
Степень, рейтинг страницы, сообщество для продавца и клиента. Итак, в конечном итоге что-то вроде этого:
merchdegree, custDegree, CustPagerank, merchPageRank, merchCommunity, custCommunity
// Вычисление PageRank для узлов-заполнителей (это не сработает, поскольку эта библиотека устарела)
ВЫЗОВИТЕ algo.PageRank(‘Заполнитель’, ‘ПЛАТИТ’, {WriteProperty: ‘pagerank’})
// Обнаружение сообщества с использованием распространения метки
ВЫЗОВИТЕ algo.beta.labelPropagation(‘Placeholder’, ‘PAYS’, {write:true, свойство записи: «сообщество», свойство веса: «cnt»})
// Просмотр результатов PageRank (WIP)
#ВОЗВРАТ СООТВЕТСТВИЯ (p: заполнитель) p.id КАК идентификатор, p.pagerank как pagerank ЗАКАЗ ПО pagerank DESC
Однако эта библиотека устарела. Я был бы признателен, если бы кто-нибудь подсказал мне, как получить эти функции и какой альтернативный код или библиотеку необходимо использовать для этого.
Ответ №1:
В последних версиях Neo4j библиотека алгоритмов Graph устарела в пользу библиотеки Graph Data Science
Примечание: Некоторые функции, возможно, немного изменились в процессе работы, поскольку у меня это удобно, вот пример использования слабо связанных компонентов для идентификации островов графа и обозначения их номером группы. Я записываю значения, потому что я делаю этот шаг во время построения графика (в отличие от создания отдельного виртуального графика в памяти)
с библиотекой графов, которую я использовал
//assign group by algo.wcc, was unionFind
CALL algo.wcc(null, null, {
write: true,
writeProperty: 'group',
consecutiveIds: true
})
YIELD nodes AS Nodes, setCount AS NbrOfComponents, writeProperty AS PropertyName;
теперь с GDS я использую
call gds.wcc.write(
{
nodeQuery: 'match (n) return id(n) as id',
relationshipQuery:'MATCH (a)-->(b) RETURN id(a) as source, id(b) as target',
writeProperty:'group',
consecutiveIds:true
}
)
YIELD nodePropertiesWritten
return nodePropertiesWritten;