2010-12-08 2 views
2

У меня сложное время, определяющее алгоритм оценки для чего-то вроде рецензируемой исследовательской работы.Алгоритм сопоставления сравнений

Возьмите данный класс:

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).

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

Есть ли лучший алгоритм для чего-то подобного?

ответ

1

Я думаю, что у вас неплохая система, но я бы сделал Grade a sbyte и отделил отзывы коллег от начальной оценки. Если у вас более 100 документов, и одна листка не выбрана для повышения, у вас будут серьезные проблемы с моральным состоянием класса, если вы не используете подписанные значения.

public class ResearchPaper 
{ 
    int StudentID; 
    int PaperID; 
    string Title; 
    sbyte InitialGrade; 
    sbyte PeerRating; 

    public sbyte Grade 
    { 
     get 
     { 
      return (InitialGrade + PeerRating); 
     } 
    } 
} 

public class PaperGrader 
{ 
    List<ResearchPaper> Papers; 

    public PaperGrader(List<ResearchPaper> Papers) 
    { 
     this.Papers = Papers; 
    } 

    public void Vote(int Id) 
    { 
     foreach (ResearchPaper Paper in Papers) 
     { 
      if (Paper.PaperID == Id) 
      { 
       Paper.PeerRating++; 
       continue; 
      } 
      else 
      { 
       Paper.PeerRating--; 
      } 
     } 
    } 
} 

Интересный побочный эффект этого кода заключается в том, что вы можете решить, какие документы понравились или не понравились студентам. Который в идеале хотел бы дать вам результаты, напоминающие следующие: Ideal Results

+0

Я надеялся избежать каких-либо изменений на любой счет, если сравнение сверстников согласуется с оценкой учителя, но я вижу, что мне может потребоваться переосмыслить эту идею. Проблема с этим кодом, конечно, в том, что PeerRating в конечном итоге полностью затмевает класс учителя. Однако, это хорошо продуманный совет, так что +1 и принято. – Flipster 2010-12-08 17:48:14

0

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

Вы настроились на проведение экспертных обзоров путем сравнения, а не оценок? Проблема в том, что такая система также будет иметь предвзятость для бумаг, чьи оригинальные оценки очень далеки друг от друга/очень близки при сравнении.

Возможно, экспертные оценки могут также быть оценками, как и обычные классы. Храните их отдельно; если бумага имеет достаточные оценки со стороны сверстников, их можно усреднить с исходной оценкой, но при намного меньше; возможно, 100: 1.

Я также думаю, что вам может потребоваться более высокий уровень точности для оценок, если вы собираетесь делать какую-либо систему, подобную этой.

+0

Привет, Андрей. Да, первоначальное намерение состояло в том, чтобы только настроить оценку, если сравнение сверстников опережает нижнюю скоринговую бумагу.Фактически, он работал таким образом в течение нескольких месяцев, и мне просто казалось, что это было во главе ... – Flipster 2010-12-08 17:46:00

Смежные вопросы