У меня сложное время, определяющее алгоритм оценки для чего-то вроде рецензируемой исследовательской работы.Алгоритм сопоставления сравнений
Возьмите данный класс:
public class ResearchPaper
{
int StudentID;
int PaperID;
string Title;
byte Grade;
}
Grade
является оценка от 0 до 100 (F до А +), который первоначально назначен преподавателем.
После присвоения класса он может быть (косвенно) изменен путем обратной связи от сверстников путем сопоставления с бумагой. Если сверстник говорит, что бумага B (класс 75) ЛУЧШЕ, чем бумага A (класс 80), тогда бумага A теряет точку (новый класс 79), а бумага B получает точку (новый класс 76). Это может произойти тысячи раз, и бумага B может оказаться лучше, чем бумага A (что хорошо).
Мой план состоял в том, чтобы НЕ изменить оценки, если экспертная оценка согласна с тем, что бумага А на самом деле лучше, чем бумага B (то, как учитель оценивал их), или бумага A набирает очки в процессе побега, пока не достигнет 100 (который устанавливается как max).
Проблема с этим алгоритмом заключается в том, что с большим количеством экспертных обзоров, в конце концов, все документы подходят к одному и тому же классу даже при относительно необычных изменениях класса, что фактически игнорирует первоначально назначенный класс учителем.
Есть ли лучший алгоритм для чего-то подобного?
Я надеялся избежать каких-либо изменений на любой счет, если сравнение сверстников согласуется с оценкой учителя, но я вижу, что мне может потребоваться переосмыслить эту идею. Проблема с этим кодом, конечно, в том, что PeerRating в конечном итоге полностью затмевает класс учителя. Однако, это хорошо продуманный совет, так что +1 и принято. – Flipster 2010-12-08 17:48:14