Мне нужно отсортировать некоторые продукты по рейтингам пользователей.
Предположим, у нас есть 3 продукта {a, b, c}, и у нас есть отзывы пользователей об этих продуктах. Неважно, какой пользователь отправит нам обратную связь (этот вопрос не касается корреляционной фильтрации, если вы с ней знакомы - интересы пользователей здесь не рассматриваются)
Каждая из этих строк ниже - это отзывы пользователей, когда они пытались сравнить 3 продукта:
a 150 баллов - b 0 баллов (этот пользователь только что сказал нам, что он думает о 2 продуктах a и b, и по сравнению с a и b он подумал, что если он дает 150 баллов, то b стоит 0 баллов)
a 150 баллов - c 20 баллов
c 200 баллов - 10 баллов (несмотря на предыдущий, этот пользователь считает, что c лучше, чем a)
a 200 баллов - b 40 баллов - c 100 баллов
a 150 баллов - b 50 баллов
a 150 баллов - b 20 баллов
(Эти рейтинги - всего лишь образец, и в реальном мире количество продуктов и оценок намного больше, чем это)
Теперь мне нужен алгоритм для определения рейтинга продукта на основе голосов пользователей. На мой взгляд, лучше всего описать эту проблему с помощью корреляционного графа и связать все продукты друг с другом.
Любая помощь или советы приветствуются.
/******************************************************************************/**
вы не можете просто сложить баллы и вычислить среднее значение баллов продукта. Потому что важно, как он получил свои баллы. Предположим, что у a 800 баллов против b, а затем c получи 10 баллов против примерно такого:
a 200 - b 0
a 200 - b 0
a 200 - b 0
a 200 - b 0
c 10 - a 0 (это означает, что c лучше, чем a)
так что определенно a лучше, чем b, но с небольшими 10 баллами c получил лучший рейтинг от a
/****************************************************************************/