Ocenianie

to tylko zalążek artykułu, pomóż mi go pisać:D

Pewnie jak zwykle zawiodły moje google-skile, ale nie mogę znaleźć odpowiedzi na dość podstawowy wydawałoby się w nauczaniu problem. Mając wyniki n studentów dla testu z m zadaniami, jak należy dobrać wagi dla poszczególnych zadań, aby wyniki testu najlepiej odpowiadały umiejętnościom studentów?

Oczywiście wymyślanie kryteriów oceny po fakcie, brzmi niepokojąco, ale wierzę, że jeśli zrobi się to "obiektywnie" i uzyskane kryterium będzie monotoniczną funkcją umiejętności studenta, to nikt nie powinien protestować. Na pewno nikt nie powinien protestować, gdy wagi znane są przed egzaminem i z reguły są, ale nawet wtedy ocenianie pojedynczego zadania, wycenionego na dajmy na to 10pkt i tak nastręcza podobnych zmartwień, gdy uświadomimy sobie, że w istocie składa się ono z pięciu podpunktów i nie zostało ustalone ze studentami ile powinny one być warte.

Dość popularną intuicją jest: im mniej osób zrobiło zadanie, tym większą powinno mieć wagę. No więc, zacznę tradycyjnie od podważenia nieuzasadnionych przesądów: nie sądzę by trudność zadania miała oczywisty związek z liczbą punktów za nie. Wyobraźmy sobie np. test w którym każde zadanie warte jest 1 punkt, mimo, że niektóre są wyraźnie trudniejsze, czy wręcz nie do zrobienia. Zdolny student rozwiąże więcej zadań niż mizerny, więc będzie miał więcej tych jedyneczek. Innymi słowy, jeśli wierzymy, że zdolny student umie wykonać nadzbiór tego co mizerny, to wagi w ogóle nie powinny mieć znaczenia.

No ale oczywiście różni ludzie mogą być zdolni na różne sposoby i potrafić rozwiązać dwa różne zestawy zadań (dajmy na to odpowiednio A i B), takie, że ani A nie zawiera się w B ani B w A. Jak ich porównać? Bez ustalenia wag za zadania się nie obędzie. Myślę, że wystarczająco trudny problemem będzie wymyślenie systemu oceniania, w którym (nierealistycznie) przyjmiemy, że studentów da się uszeregować liniowo, tak by każdy umiał zrobić wszystkie te zadania które potrafi zrobić następny po nim w rankingu.

Aha, jedno ważne założenie: studenci mają dostatecznie dużo czasu by nie musieć wybierać pomiędzy zrobieniem zadania x czy y. Zakładamy, że zrobili wszystko co mogli. Bez tego doszłoby nam analizowanie dość pokręconej dwuosobowej gry (student kontra system oceniania), w której student podejmuje decyzje w oparciu o antycypowany sposób oceny, a system oceny musi kompensować jego sprytne decyzje.

Jak wspomniałem przypisanie wag równych 1, załatwiałoby problem, gdyby nie jeszcze jeden mały detal: losowość. Zdarza się, że ktoś zrobi literówkę, zgubi jakieś zdanie, pomyli treści zadań, albo przeciwnie: widział opracowanie tego samego zadania tuż przed egzaminem.

Pora wprowadzić jakiś model:

  • S={s1,...,sn} to zbiór n studentów
  • Z={z1,...,zm} to zbiór m zadań
  • talent : S -> {1,...,n} to funkcja (bijekcja), której nie znamy, która zdolniejszym studentom przyporządkowuje wyższą pozycję w rankingu
  • d : Z -> {1,...,n} -> [0,1] to również nieznana nam funkcja, która każdemu zadaniu i poziomowi talentu przyporządkowuje prawdopodobieństwo rozwiązania zadania. Od tej funkcji oczekujemy, że dla ustalonego zadania jest monotoniczna.
  • X : Z -> S -> {0,1} zmienna losowa, która dla ustalonego zadania i studenta przyjmuje wartość jeden gdy ten rozwiązał zadanie. Mamy przy tym Pb(X (zi)(si) == 1) = d(zi)(talent(si)).
  • w : Z -> [0,inf) to współczynniki, których szukamy.
  • note : S -> [0,inf) to funkcja wyliczająca ocenę danego studenta, czyli note(s) = sum_z in Z w(z)*X(z)(s)
Celem jest, by note było monotoniczną funkcją talentu, czyli by note(s)< note(s') iff talent(s)< talent(s'), a przynajmniej z dużym prawdopodobieństwem, bo note jest funkcją zmiennych losowych X.

Po raz kolejny zauważmy, że wartość oczekiwana oceny, czyli E[note(s)] = E[sum_z in Z w(z)*X(z)(s)] = sum_z in Z w(z)*E[X(z)(s)] = sum_z in Z w(z)*(Pb(X(z)(s)==1)) = sum_z in Z w(z)*d(z)(talent(s)) jak najbardziej jest monotoniczną funkcją talentu. Problemem jest głównie wariancja. Niektóre zadania mają pewnie funkcję d(z) bardziej stromą a niektóre mniej. Niektóre zadania są takie, że albo umiesz albo nie umiesz, a niektóre takie, że możesz liczyć na farta. Intuicyjnie więc wagi w powinny zależeć jakoś od wariancji, tak by bardziej losowe zadania nie zamazywały obrazu wyłaniającego się z reszty testu.

Jak to często z kombinacjami liniowymi bywa, warto się zastanowić, czy czasem nie jest tak, że niektóre (być może wszystkie poza jednym) z zadań powinny mieć wagę zero? Po czym poznać mało przydatne zadanie?

Zważywszy, że założyłem binarny sposób oceniania zadań: albo 0 albo 1, to w efekcie po sprawdzeniu wszystkich prac, o zadaniu z można powiedzieć tylko tyle, że k studentów je zrobiło, zaś n-k nie, gdzie k=sums in S X(z)(s). Pomijam tutaj trzecią opcję: nie oddano zadania, dość typową na egzaminach na ii:)

Mając tylko taką jedną liczbę k, ciężko orzec czy zadanie jest czy nie jest dobre. Łatwo sobie wyobrazić że np. k=n/2 może być efektem zarówno zupełnie losowego zadania jak i takiego, które idealnie oddziela dobrych od mizernych. Wydaje się więc, że istotne są poszczególne wartości X, a więc kto je zrobił. Tylko, że z punktu widzenia matematyki jedyne czym różnią się między sobą ci ludzie, to to jakie zadania zrobili. Mamy tu więc jakąś rekurencję: to, które zadania uznamy za wiarygodne wynika z tego czego spodziewamy się po poszczególnych studentach, a to z kolei znów zależy od tego, którym zadaniom ufamy. Pachnie jakimś pagerankiem:)

Nie zdziwiłbym się, gdyby tego się w ogóle nie dało zrobić porządnie. Ani, jeśli się da to zrobić pięknie i prosto. Ale to co mnie dziwi, to że problem dostrzegłem dopiero po 20 latach edukacji.

Być może porywanie się z motyką na problem: "znajdź porządek liniowy na ludziach" jest z góry skazane na porażkę. Może warto cofnąć się jeden krok i przypomnieć sobie cel jaki chcemy osiągnąć, a tym jest podzielenie studentów na dwie grupy: zdał/nie zdał.

Problem ten może okazać się znacznie prostszy. W szczególności wykonalny nawet, gdy porządek jest tylko częściowy (czy to na studentach jak, czy na trudnościach zadań). Trochę pachnie mi jakimś MIN-CUTem (jak to zwykle gdy trzeba podzielić zbiór na dwa mniejsze). Przykładowo jeśli zerojedynkowy wektor wyników jednego studenta bardzo przypomina zerojedynkowy wektor drugiego z nich, to możemy chcieć, by byli w tej samej grupie. Tymsamym cosinus kąta jaki tworzą w m-wymiarowej przestrzeni oceny ich prac, jakoś tam tłumaczyłby się na koszt przecięcia krawędzi.

Można też pewnie próbować jakoś inaczej klastrować tę przestrzeń, w oparciu o to jak wygląda poset, czyli skierowany graf acykliczny reprezentujący częściowy porządek na studentach. No bo coś tam na pewno umiemy powiedzieć, np., że ten co nic nie zrobił jest gorszy od tego co zrobił wszystko. No więc jakieś krawędzie mamy. A tych co nie mamy wolelibyśmy nie przecinać.

Można wreszcie (czuję się zawstydzony, że sam tego nie podważyłem na wstępie) zastanowić się czy funkcja d jest na pewno monotoniczna, tj. czy nie bywa w życiu tak, że jak ktoś wie za dużo, to jest mu dane zadanie zrobić ciężej. Z resztą "monotoniczność" jest tutaj skleconym przeze mnie naprędce pojęciem, bo tak na prawdę mamy tu do czynienia z jakimś rozkładem prawdopodobieństwa i porównywać ze sobą dwa rozkłady można na wiele ciekawych sposobów, niekoniecznie patrząc na wartość oczekiwaną. Można np. użyć częściowego porządku jaki daje relacja dominacji. Sprawa staje się znacznie mniej oczywista, gdy dopuszczamy wartości X inne niż 0 i 1.

Można też spytać, czemu nie włożyć więcej wysiłku w dobór zadań do egzaminu. No więc, nie zawsze chodzi o egzamin. Podobny problem mamy z listami zadań na ćwiczenia. Nie mogą wszystkie być trudne, bo studenci by się poddali i niewiele nauczyli. Muszą być więc bardzo różnorodne zadania od prostych, po trudne (cokolwiek to znaczy). Niebagatelny staje się tu wpływ korelacji: jak ktoś umie zrobić zadanie 2 to umie też 3. Ba! Nawet poza obrębem jednego studenta: czasem jeden student deklaruje, że umie zrobić zadanie 2 jeśli ktoś inny zrobi zadanie 1.

Upieranie się przy liniowym systemie oceniania (notes = w * X), ma tę zaletę, że studentom łatwo zakomunikować kryterium (w) i rozstrzygać spory. Nie wiem jak wytłumaczyć studentowi, że znalazł się w złej partycji MinCuta.

Popularne posty z tego bloga

Szczęście jako problem inżynieryjny

Kilka rzeczy, o których żałuję, że nie powiedziano mi, gdy byłem młody

Produkt: Ojciec*