Рейтинг и голосования

Имеем ситуацию:
Юзер с силой 6.52 и рейтингом 4.05 голосует за Блог, у блога рейтинг с 0 поднимается до 1.40, как бы нормально, но следующий юзер с силой и рейтингом 0 — даёт голосованием 1.13 рейтинга. Что же получается? Силы 6 и 0 баллов практически сопоставимы в итоговом весе рейтинга у блога.

Как человек с нулевой силой может влиять на рейтинг?
Вот что раньше писал ort.

25 комментариев

avatar
А еще он писал, что алгоритм можно посмотреть в модуле Rating, там можно любое соотношение задать. Другое дело, голосуй не голосуй, все равно получишь… непонятно о чем говорящий рейтинг блога.
avatar
1. Да, я помню про модуль, но пока не правил — решил отписаться здесь о не здравой, на мой взгляд, ситуации.
2. По поводу Вашего топика, да, я принимал там тоже участие в комментариях, а ответа от разработчика так и не увидели. Ситуация попрежнему не ясна с будующим рейтингом блогов?
avatar
Если я сделаю, то обязательоно выложу решение.
А, вы говорите про настройки на этом сайте… ясно, это к Максу :)
avatar
касательно п.1:
Никакого нового алгоритма, насколько я помню, так и не было предложено… вот и остался текущий.
Кстати идея перенести коэффиценты подсчета рейтинга в конфиг имеет место быть:)
avatar
да тут не угадаешь, коэффициенты для хабра на этом сайте не подойдут, потому что на хабре можно написать 10 топиков и заработать NNN рейтинг и NN силу, а здесь придется создавать в десятки раз больше топиков и комментариев, чтобы заработать эти же цифры. значит для этого сайта должны быть другие коэффициенты…
avatar
Меня больше интересует есть ли какой-то функционал для пересчета рейтингов?
вот поменял я коэф, и как посмотреть насколько это повлияло на рейтинг в системе.
avatar
это фантастика, коэф-ты надо изначально задавать.
как ты себе представляешь пересчет рейтинга пользователю user1 скажем за топики?
user2 поставил + за топик user1 при силе 1
user2 поставил + за топик user1 при силе 2
user2 поставил + за топик user1 при силе 3
user2 поставил — за топик user1 при силе 4
user2 поставил + за топик user1 при силе 3
user2 поставил — за топик user1 при силе 3
***
user2 поставил + за топик user1 при силе 10

у нас есть тут специалиты по математическому моделированию?
avatar
мда, не получится, недостаточно данных для пересчета — нет даты каждого голоса, следовательно, мы не сможем определить силу пользователя в любой момент времени.
avatar
можно конечно добавить поле «skill» тогда будет пересчитываться на ура. но опять же, если изменить коэффициенты то изменится динамика skill… замкнутый круг…
avatar
но мне кажется что нужно делать такую возможность для откатов, живой пример пост про троля livestreet.ru/blog/410.html
пока идея как это все пересчитать в голове не утряслась. к табличкам с голосами добавлю себе время голоса. потом наверно сливаем все голоса во временную таблицу, указывая тип голоса, сортируем по дате и вперёд
avatar
вот как раз нужно добавить поле или «skill» или «last_rating», тогда можно будет откатить довольно-таки просто
avatar
да, именно нужно в таблицы topic_vote, user_vote, blog_vote, commebt_vote добавить поле user_voter_skill и записывать в него силу, с которой проголосовал user_voter, тогда можно будет откатить рейтинг
avatar
если для отката то да, будет достаточно, а для полного пересчета с новыми коэф. не пойдет
avatar
по идее, ничего не надо пересчитывать, ну ошиблись вы с коэф-тами, какие-то пользователи активные стали рейтинговыми и сильными, да ну и бог с ними.
avatar
в любом случае нужен функционал для отката рейтинга в связи с деструктивными действиями пользователей. с какой стороны пересчитывать это уже будет решать тот кто это будет делать.
лазить в бд и исправлять каждый топик, каждого пользователя проблемно.
avatar
еще, как мне кажется, новому пользователю необходимо давать определенную силу с которой он может влиять на других. если его сила равна 0, то ни на что он повлиять не может.
avatar
Ещё как может, посмотрите файл с алгоритмом, там стоят минимальные значения, у себя я их пока понижаю.
avatar
«Юзер с силой 6.52 и рейтингом 4.05 голосует за Блог, у блога рейтинг с 0 поднимается до 1.40, как бы нормально, но следующий юзер с силой и рейтингом 0 — даёт голосованием 1.13 рейтинга. Что же получается? Силы 6 и 0 баллов практически сопоставимы в итоговом весе рейтинга у блога.»
так такая ситуация совершенно нормальная с теми настройками, которые присутствуют на этом сайте. Макс видимо предполагал, что нормальная сила должна быть 50-200, а вы говорите про 6. Мы пока что все новички на этом сайте и голоса у нас имеют практически одинаковую силу…
avatar

Я это уже вкурил, а кто-нибудь понял что за переменные?
$iMinCount=log(0+1);
$iMaxCount=log(500+1);
avatar
эти параметры задают наклон кривой, как быстро растет iDelta
я даже сделал себе xls файлик, в котором можно все менять и подганять по себя, пользуйтесь.
avatar
верно.
вообще текущая формула мне мало нравится, не красивая она :)
avatar
само логарифмическое распределение или коэффициенты? помоему все нормально, надо только делать поправку на посещаемость ресурса и все будет чики.
avatar
Поменял все формулы для расчета рейтинга и силы.
Основные особенности:
— изначально всем дана определенная сила (1)
— пользователь с силой 0 не влияет на силу пользователя за которого голосует.
— влияние на рейтинг другого пользователя происходит за счет рейтинга самого пользоватея (по-моему это логично) + небольшое влияние за счет силы (в начале у нас есть только сила)
— голос за топик дает четверть от голоса за пользователя
— голос за коммент дает десятую часть от голоса за топик
кто видит в данном подходе что-то неправильное — пишите, обсудим
добавил дату создания для каждого голоса и скрипт для пересчета всего рейтинга
если кому интересно, могу написать статейку
avatar
пишите конечно
avatar
Будем ждать.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.