Всем привет. Сначала расскажу о сайте. На сайте пользователи делают свои прогнозы на победу той, или иной команды. Если угадал то +1 к победам, если нет , то +1 к поражениям, все очень просто. Теперь я хочу прикрутить ТОП прогнозеров. Но тут загвоздка, как мне рассчитать лучшего, ведь должно как-то количество общих прогнозов, количество побед и поражений влиять на это. Ответ наверняка что-то элементарное из курса математики, но я не математик =)
Если так, то: Первый: 100/1 (100/101=0,99) Второй: 5/0 (5/5 = 1) Следуя этой логике второй будет в топе выше первого, хотя сделал намного меньше прогнозов.
как может быть кол-во успехов больше кол-ва попыток? первый угадал раз из ста. 1 / 100 = 0,01 второй угадал ноль из пяти. 0 / 5 = 0 третий угадал 4 из 5 = 0,80 четвертый 400 из 500 что по сути те же 4 из 5 = 0.80 сортировка (3+4)-1-2 с "намного меньше" - тут поле для фантазии. какие критерии? срок регистрации на сайте? последняя активность? донат?
Я думаю меня устроит этот способ вычисления лучших. Только добавлю обязательным критерием прогноз хотя бы 1 раз в неделю. Спасибо за помощь! =))
Тебе нужна нормировочная функция, чтобы учитывать общее количество прогнозов. 4/5 совсем не то же самое, что и 400/500 и система рейтинга, которая их поровняет, как по мне, не выполняет свою задачу) Нормировочная функция должна изменяться от 0 до 1 в зависимости от общего числа прогнозов пользователя. Например, можно такую функцию взять: f(total) = 1 / (1 + exp (-total/t0) ). Возьмем t0 = 100. (total - общее число оценок). 4/5 * f(5) = 4/5 * 1 / (1 + exp (-0.05)) = 0.409 400/500 * f(500) = 400/500 * 1 / (1 + exp(-4)) = 0.78561103203. Вот так - другое дело, уже больше на правду похоже(по крайне мере для составления топа это больше подходит). Можно взять другие t0 или нормировочную функцию, но тут можно экспериментировать. Добавлено спустя 18 минут 20 секунд: Можно сделать, f(total) = 1, если total > tmax. Тогда после tmax оценок будет учитываться только вероятность без учета общего количества. рейтинг у 4/5 будет тогда 0.409. 200/250 - 0.8. 400/500 - тоже 0.8