|
|
|
| Пытаюсь придумать формулу расчета рейтинга для одного сайта.
На сайте пользователи будут публиковать свои работы. Работы будут оценивать и в результате у каждой работы будет рейтинг по 100 бальной шкале.
Необходимо на основании количества работ, количества голосов поданных за эти работы и рейтинга этих работ рассчитать рейтинг автора. Опять же по 100 балльной шкале.
У кого какие будут фантазии?:) | |
|
|
|
|
|
|
|
для: Loki
(23.12.2008 в 16:56)
| | а заказчик что говорит? | |
|
|
|
|
|
|
|
для: Trianon
(23.12.2008 в 17:12)
| | Принимает практически любой мой вариант:)
Но хочется чтобы посетители потом не задавали вопросов "а почему он в рейтинге выше чем я?" | |
|
|
|
|
|
|
|
для: Loki
(23.12.2008 в 16:56)
| | Я бы высчитывал среднее количество голосов по каждой работе, считал среднеквадратичное отклонение (как меру "единодушия мнений"), потом делил бы средний бал на СКО получая взвешенную оценку за статью. Потом это дело суммировал, получая общую оценку работ автора.
Как-то так. | |
|
|
|
|
|
|
|
для: Axxil
(23.12.2008 в 17:13)
| | Собственно, рейтинг статьи и есть та самая мера единодушия.
То есть для расчета уже есть:
рейтинг статьи
количество голосов поданных за статью
количество статей
если просто просуммировать рейтинг статей, то мы не получим рейтинг по 10 бальной шкале... разве что поделить его на текущий максимум... но тогда при смене максимума придется у всех рейтинги пересчитывать. | |
|
|
|
|
|
|
|
для: Loki
(23.12.2008 в 17:35)
| | мера единодушия - это скорее рейтинг оценки.
Я вот чего не понимаю.
Отрицательных голосов не существует?
Если за статью не проголосовали, значит у нее изначально оценка низкая? | |
|
|
|
|
|
|
|
для: Trianon
(23.12.2008 в 19:51)
| | отрицательный отзыв - 1 балл, положительный - 5
то есть при любом раскладе рейтинг оцененой статьи выше чем неоцененной. | |
|
|
|
|
автор: xx (24.12.2008 в 00:27) |
|
|
для: Loki
(23.12.2008 в 17:35)
| | если делать не по умному ,)
и при таких условиях что
A у каждой статьи рейтинг в диапазоне 0 -- 100
B колличество статей 0 -- ææ (ææ - это бесконечность )
C и голосов за каждую из статей 0 -- ææ,
То нужно сделать по хитрому
Сдать заказчику при такой настройке что всё по честному , и оценка ровно подсчитывает все плюсы за все три параметра , т.е.
Оценка = 33((sum(всех А автора)/B)/100) + 33(B/sum(B всех авторов)) + 33(С/sum(С за все статьи всех авторов)) + (1|0)
(1|0) - взависимости от настроения заказчика
но набрать 100 смогут только если автор всего один и настроение хорошее :)
И показать где там есть кнопочка , которой убавлять например вторую составляющую , если вдруг какойто талантливый автор напишет слишком много статей на плохие оценки , и оставит далеко взади всех честно-тыкающих на кнопочки , и не умеющих копипастить ;)
или если начнут накручивать оценки , чтобы такое пресекать , но чем больше настроек останется , тем больше вычислений | |
|
|
|
|
|
|
|
для: xx
(24.12.2008 в 00:27)
| | Спасибо. Вариант хороший.
Но меня смущает обилие динамических вычислений. Я сейчас подумал что самым правильным было бы хранить рейтинг в абсолютных величинах, а к 100 баллам приводить при запросе. В этом случае рейтинг бы пересчитывался для каждого автора непосредственно при голосовании. А запрос был бы достаточно простой:
Как вариант рейтинга в этом случае мог бы выступить такой показатель:
sum(A*C)
Что думаете? | |
|
|
|