Я работаю над чем-то вроде следующей проблемы. У меня есть куча пользователей и N книг. Каждый пользователь создает упорядоченный рейтинг всех книг, которые он прочитал (что, вероятно, является подмножеством из N книг), например, Книга 1> Книга 40> Книга 25.
Теперь я хочу превратить эти индивидуальные рейтинги пользователей в единый упорядоченный рейтинг всех книг.
Есть ли хорошие или стандартные подходы, чтобы попробовать? Пока что я думаю о моделях Брэдли-Терри, применяемых для парных сравнений, но мне интересно, есть ли что-нибудь еще.
Ответы:
Если вы заинтересованы в использовании (больше, чем в разработке), попробуйте нашу ранговую систему ранжирования.
Rankade бесплатен и прост в использовании, и он отличается от модели Брэдли-Терри и системы ранжирования Elo (вот сравнение ), потому что он может управлять матчами с 2+ фракциями (т.е. книгами, в вашем сценарии). Вставив ранжированные пользователем рейтинги (как совпадения между двумя или более книгами, с подробными итоговыми позициями, включая связи), вы получите единый упорядоченный рейтинг всех книг, которые вы ищете. В зависимости от ранжирования вы можете проверить эволюцию времени для рейтинга книг, статистику совпадений книг и многое другое.
источник
Модели ранжирования Plackett-Luce решают эту проблему и представляют собой метод, основанный на вероятности, при котором вероятность максимизируется с использованием подпрограммы максимизации-максимизации, которая аналогична максимизации ожидания, в том смысле, что они используют вспомогательную целевую функцию над функцией правдоподобия, которая является оптимизирован для обеспечения итеративной монотонной максимизации функции правдоподобия. (см. алгоритмы MM для моделей ранжирования Plackett-Luce Дэвида Хантера). Он также предоставляет код.
Это идеально подходит для вашего набора данных:
Книга 1> Книга 40> Книга 25
Книга 40> Книга 30
Книга 25> Книга 17> Книга 11> Книга 3 и т. Д.
источник