Как рассчитать баллы? - PullRequest
9 голосов
/ 15 июня 2009

Этот вопрос больше связан с логикой, чем с любым языком программирования. Если вопрос не подходит для форума, пожалуйста, дайте мне знать, и я удалю это.

Я должен написать логику для подсчета баллов для блогов на сайте Blog Award. Блог может быть номинирован на несколько категорий наград и рецензируется или оценивается жюри по шкале от -1 до 5 (-1 означает, что блог им совершенно не нравится). Теперь блог может быть оценен одним или несколькими присяжными. Один из критериев при расчете окончательной оценки блога заключается в том, что если блог оценивается положительно большим количеством людей, он должен получить больший вес (и наоборот). Точно так же у блога с рейтингом -1, даже у одного присяжного, должна быть затронута его оценка (-1 здесь - своего рода вето). Наконец, я также хочу получить дополнительный балл, основанный на рейтинге Technorati блога (чтобы итоговый балл основывался на сочетании рейтинга Juror + рейтинга Technorati).

Пример: блог оценен в категории А всего 6 присяжными. 2 - 3, 3 - 2, 1 - 4. (Я использовал для вычисления балла: (2 * 3 + 3 * 2 + 1 * 4) / 6 = 16/6 = 2,67 для взвешивания в среднем, но меня это не устраивает, в первую очередь потому, что он плохо работает, когда рейтинг присяжного заседателя равен -1. Кроме того, мне нужно добавить критерии ранжирования рейтинга Technorati).

Не могли бы вы помочь мне выбрать лучший способ подсчета итоговых баллов (оставив метод оценки таким же, как и выше, который нельзя изменить сейчас)?

Ответы [ 4 ]

5 голосов
/ 15 июня 2009

Если вы хотите взвесить эффект от оценки -1, используйте тот же расчет среднего балла, но заменяйте -10, когда видите -1. Вы можете выбрать значение, отличное от -10, если не хотите, чтобы отрицательный рейтинг весил так сильно.

4 голосов
/ 10 июля 2009

Вы можете посмотреть на использование нижней границы интервала оценок Уилсона для своих оценок.

Подробнее см. http://www.evanmiller.org/how-not-to-sort-by-average-rating.html. Хотя там он используется для более простого случая Бернулли.

Суть в том, что если у вас много рейтингов, у вас более высокая степень уверенности в своих результатах. Затем вы можете объединить баллы из ваших локальных рейтингов и рейтингов Technorati, взвесив их с количеством избирателей на местном уровне и в Technorati.

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

4 голосов
/ 15 июня 2009

Подсчет баллов на основе голосов будет довольно легким. Добавление звания Technorati будет сложной частью.

Я сделал быстрый скрипт, который вычисляет некоторые оценки на основе этого алгоритма

score = ( vote_sum - ( vetos * veto_weight ) ) / number_of_votes

Вы можете изменить параметры URL, чтобы получить разные значения

Есть много связей, так что, возможно, вы можете использовать звание блога technorati в качестве разрыва связи

0 голосов
/ 15 июня 2009

вы можете внутренне работать со счетами от 0 до 6. Просто сделайте сдвиг на единицу, вычислите счет и вернитесь назад. Я полагаю, что -1 имеет некоторые разрушительные последствия для ваших расчетов.

...