рейтинг новостных сайтов

Я создаю новостной сайт, на котором пользователь может голосовать за или против статей. Статьи связаны с разными сущностями: человек, место, компания, ... У сущностей есть глобальная оценка и оценка для каждого пользователя.

Таким образом, когда пользователь голосует за или против в статье, глобальная оценка связанных сущностей и оценка каждого пользователя меняются.

Например: есть статья, в которой упоминаются Google и Microsoft. Пользователю А понравилась статья, и он проголосовал за нее. Глобальные и пользовательские оценки A организаций Google и Microsoft увеличиваются.

Я бы хотел, чтобы пользователь А больше влиял на свои личные баллы и меньше влиял на общий балл.

Также сущностям придется начинать с некоторой оценки, чтобы первые пользователи сайта не могли ее слишком сильно уменьшить.

Я думаю о ранжировании объекта от 0 до 1. Голоса двоичные: нравится (1), не нравится (0).

Я рассматриваю метод байесовского среднего, упомянутый в этот пост в блоге с C=0,7 и с разными значениями m (я использую am для личный балл и еще один для общего балла). Тесты, которые я провел, не показали почти никакой разницы между личными и общими оценками. Кажется, я не мог найти правильные значения.

Редактировать:

Это код (python), который я использую для вычисления байесовского. С этой формулой результаты лучше:

def bayesian_average(votes, C=100, m=0.7): #C higher for global
    #votes = [1,0,1,0,0,1,1,1]
    avg_votes = C
    avg_rating = m
    ent_votes = len(votes) #entity votes
    ent_rating = sum(votes) / float(ent_votes)
    ba = ( (avg_votes * avg_rating) + (ent_votes * ent_rating) ) / (avg_votes + ent_votes)
    return ba

person mfalcon    schedule 08.11.2012    source источник
comment
Можете ли вы показать, что вы сделали до сих пор? Ваш код позволит нам определить, допустили ли вы очевидную ошибку или нет. Интересно, использовали ли вы как-то 0,7 в качестве размера псевдовыборки, а не цели для среднего (предыдущее среднее в байесовском среднем)   -  person Ben Allison    schedule 09.11.2012


Ответы (1)


Теперь я просто захожу на домашнюю страницу Эвана Миллера, когда хочу сделать что-то подобное. Вы, вероятно, хотите один (или несколько) из этих трех методов:

person Jamey Sharp    schedule 08.11.2012