Neo4j - рекурсивный запрос с весами отношений - PullRequest
0 голосов
/ 19 марта 2019

Я создаю инструмент, который позволяет пользователям рекомендовать последовательности онлайн-курсов другим пользователям.

На обороте данных, сгенерированных из этого, я хотел бы получить представление о наиболее рекомендуемых последовательностях курсов. Вот кусок модели:

enter image description here

На этом графике цифры зеленого цвета - это веса, которые показывают, сколько людей рекомендовали один курс за другим (например, 655 человек рекомендуют принимать ML Стэнфорда после вступления к пробе)

Поле recs в узлах - это абсолютное количество рекомендаций, которые есть в курсе (например: Stanford ML был выбран 1000 пользователями в последовательных последовательностях)

То, что я хотел бы сделать, это начать с конечной цели, выяснить наиболее рекомендуемые предварительные условия.

Алгоритм может работать примерно так:

Function fancy_algo (node, graph)
    If (no prereqs OR prereq weight is very low)
        Return graph
    Get all incoming nodes
    For each incoming node subject
        MR = most recommended pre-req
        Append MR to graph
        fancy_algo(MR, graph)

Конечное состояние для человека, желающего заниматься машинным обучением в Стэнфорде, может выглядеть примерно так:

enter image description here

Обратите внимание, что после «Введение в CS» мы не включили «Алгебру», потому что ее предварительный вес был очень низким (20 из 4567).

Это что-то, чем можно управлять с помощью Cypher? Как бы я начал?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...