New! Telegram канал про микроконтроллеры, SDR приемники, радиолюбительство и электронику в целом:

t.me/HighFrequency

На правах рекламы:

Средневзвешенная система голосования. 4 июля 2009 г.

Средневзвешенная система голосования.


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

Допустим, на проекте пользователи публикуют некие контентные единицы в различные разделы, например, фотографии разных жанров. Пользователь имеет право поставить за фотографии оценку, при этом рассчитывается рейтинг, в общем случае это среднее значение от всех выставленных за фотографию оценок. Но, как на любом многопользовательском ресурсе, есть более опытные пользователи, голос которых должен играть ведущую роль в рейтинге, а есть новички, с более слабым голосом. Здесь помогает понятие веса голоса, причем вес должен быть дифференцирован по разделам. Например, автор, работающий в жанре пейзажной фотографии, имеет максимальный вес голоса именно в этом разделе, но минимальный, скажем, в разделе «Обнаженная натура». Пришлось попотеть, прежде чем нашлись формулы, более или менее объективно описывающие вес голоса. Смысл веса голоса заключается в следующем (здесь и далее примеры будут касаться рейтингов работ и авторов на фотографическом сайте): автор должен подтвердить свою компетентность в том или ином разделе, набрав за свои работы  в нем как можно больший балл (по пятибалльной шкале). Наиболее оптимальным оказалось решение, в котором вес голоса изменяется от 0 до 1, точнее от 0.1 (для новичков). Формула для расчета веса голоса выглядит примерно так:

Weight = tanh(N/C)*(SUM(m_value*m_weight)/ SUM(m_weight))/5.0;  где

N - это число оценок, поставленных автору к публикациям в данном разделе,
C - нормирующая константа, зависящая от активности пользователей, чем больше пользователи ставят оценок, тем больше должна быть константа,
m_value и m_weight - значение и вес каждой конкретной оценки, принимающей участие в расчете веса голоса.

Гиперболический тангенс отношения поставленных автору оценок к нормирующей константе учитывает активность самого автора и интерес к нему - чем больше автор публикует работ, тем больше оценок ему ставят, чем интереснее работы, тем больше оценок ему ставят. Чем больше константа C, тем медленнее tanh() стремится к единице, это значит, что при высокой активности пользователей, для достижения максимального веса голоса (или близкого к максимальному), пользователю потребуется больше усилий. При значении отношения N/C больших 2, tanh(N/C) приближается к единице и перестает влиять на средневзвешенное значение от всех оценок. Кстати, если переходить на MySQL, то можно использовать арктангенс (ATAN), но, поскольку он стремится не 1 а к PI/2, следует внести соответствующую коррекцию.  Следует также помнить, что арктангенс медленнее стремится к PI/2, нежели гиперболический тангенс к 1, поэтому придется вносить поправку и в константу.

Что касается рейтинга конкретной публикации, тут все просто — формула без учета количества оценок будет выглядеть так:

Rate = SUM(m_value*m_weight)/ SUM(m_weight);

 

За два с лишним года использования на региональном фотосайте, система оценок показала себя весьма эффективным и объективным средством оценить труды авторов. Поскольку в расчетах рейтингов не принимают участие оценки с весом менее 0.2, исключены накрутки рейтингов клонами, ибо, чтобы достичь такого веса, клонам приходится работать на равных с основными пользователями, т.е. публиковать реальные работы (воровство работ и повторные публикации пресекаются) и набирать оценки от продвинутых пользователей ресурса. Эффективность системы веса автора в том или ином разделе сайта подтвердилась, когда ведущий фотосайт страны похвалил и перенял у моего проекта эту фишку. Но, поскольку они незадолго до этого перешли на накопительную систему рейтингов, им пришлось ограничиться лишь визуальным отображением состоятельности авторов в разных жанрах.

 

Желаю удачи и объективности на ваших ресурсах.
Искренне ваш, Семен Шторкин.

 


comments powered by Disqus

 

Про радио 6

 

Про микроконтроллеры 1

 

Про фото 27

 

Блог 35

 

Про кино 8

 

Про WEB 6

 

 

 

Поток сознания тут — twitter.com/shtorkin

И тут — facebook.com/shtorkin

Сюда можно писать в ЛС — vk.com/shtorkin

Youtube — youtube.com/user/SemenShtorkin

Картинки — instagram.com/shtorkin


  © 2007 – 2019 Семен Шторкин (Семен Орлов)
Для связи:

Все права на представленные на сайте материалы принадлежат Семену Орлову, если не указано иного. При копировании материалов активная индексируемая ссылка на сайт «shtork.in» обязательна.