ML Atlas

Newsletter · kurs „ML w 10 dni” · dzień 8 z 10 · ok. 2 min czytania

Pięć egzaminów zamiast jednego szczęśliwego

W skrócie

Dzień 8 kursu mailowego „ML w 10 dni”: walidacja krzyżowa, czyli jak ocenić model na wielu podziałach danych zamiast ufać jednemu, szczęśliwemu albo pechowemu.

Pojęcie: Walidacja krzyżowa ·

1. Haczyk

Oceniasz ucznia po jednej kartkówce. Może trafił na swoje ulubione zadania, a może miał zły dzień. Lepiej zrobić kilka kartkówek z różnych działów i wziąć średnią.

2. Przewidź

Zbiór liczy 178 win. Dzielisz go na k części i każda po kolei jest testem. Zwiększasz k z 2 do 10. Co dzieje się z różnicą między najgorszą a najlepszą częścią: maleje, zostaje prawie taka sama czy rośnie?

Zapamiętaj swoją odpowiedź. Rozwiązanie jest niżej.

3. Wyjaśnienie

Walidacja krzyżowa dzieli dane na k części. Model uczy się na wszystkich częściach poza jedną i jest sprawdzany na tej jednej. Potem następna część idzie do testu i tak dalej, aż każda była testem raz. Wynikiem jest średnia, a rozrzut między częściami pokazuje, jak bardzo wynik zależy od losu.

Rozwiązanie: rośnie. Dla k = 2 najgorsza część ma 94,4%, a najlepsza 97,8%, czyli dzieli je 3,4 punktu procentowego. Dla k = 10 rozstęp to od 83,3% do 100,0%, czyli 16,7 punktu. Część testowa liczy wtedy tylko 17 lub 18 win, więc jedna pomyłka waży ponad 5 punktów. Średnia prawie się nie zmienia: 96,1% i 96,7%.

Sprawdź sam. W lekcji przesuwasz suwak liczby części k i patrzysz na słupki z wynikiem każdej części.

4. Częsty błąd

„Większe k zawsze daje lepszą ocenę.” Średnia zmienia się niewiele, pojedyncze części szumią coraz bardziej, a czas obliczeń rośnie tyle razy, ile jest części. Domyślnie scikit-learn używa pięciu części i to zwykle rozsądny początek.

5. Gdzie ta analogia się psuje

Kartkówki pisze ciągle ten sam uczeń. W walidacji krzyżowej za każdym razem uczysz nowy model na trochę innych danych. Wynik ocenia więc przepis na model, a nie jeden konkretny, wytrenowany model.

6. Dlaczego to ważne w pracy

W scikit-learn walidację krzyżową robi cross_val_score. Na Kaggle wynik lokalnej walidacji krzyżowej to twój kompas, a tabela wyników bywa myląca (lokalna walidacja a leaderboard).

7. Pytanie powtórkowe

Odpowiedź na pytanie z poprzedniego dnia

Nie zawsze. W lekcji „Klasyfikacja: rysowanie granicy” próg 0,3 dał 98,6% trafności, a domyślny 0,5 tylko 96,8%. Najlepszy próg zależy od proporcji klas i od tego, który błąd kosztuje więcej.

Nowe pytanie

Wracamy do dnia 6. Model ma wysoką trafność, ale przeocza sporo chorych. Na jaką miarę patrzysz?

Odpowiedź w następnym dniu kursu.