Newsletter · „ML jak dziecku” · numer 2 · ok. 2 min czytania
Sprawdzian, który wiedział za dużo
W skrócie
Wyciek danych prostymi słowami: jak model dostaje podpowiedź, której w prawdziwym użyciu mieć nie będzie, i dlaczego wtedy nawet czysty szum wygląda na sukces.
Pojęcie: Wyciek danych ·
1. Haczyk
Nauczyciel układa sprawdzian z zadań, które przerabiał z klasą na lekcji, bo to dobre zadania. Średnia wychodzi rekordowa. Na egzaminie zewnętrznym ta sama klasa wypada przeciętnie. Nikt nie ściągał. Sprawdzian po prostu wiedział za dużo.
2. Przewidź
Bierzemy 60 próbek czystego szumu: 1000 losowych kolumn i losowe etykiety „tak” albo „nie”. Nie ma tu żadnej reguły do znalezienia. Wybieramy 10 kolumn najmocniej powiązanych z etykietą, a potem sprawdzamy model walidacją krzyżową na 5 częściach. Jaką trafność zobaczymy: około 50%, jak przy rzucie monetą, czy około 80%?
Zapamiętaj swoją odpowiedź. Rozwiązanie jest niżej.
3. Wyjaśnienie
Wyciek danych to sytuacja, w której model podczas nauki dostaje informację, której w prawdziwym użyciu mieć nie będzie. Najczęściej jest to informacja o odpowiedzi albo o danych, które miały udawać nowe.
Rozwiązanie. Walidacja pokazuje 82%, choć w danych nie ma niczego poza przypadkiem. Gdzie jest podpowiedź? Wybór 10 kolumn patrzył na wszystkie 60 próbek, także na te, które potem udawały test. Wśród 1000 losowych kolumn zawsze kilka przypadkiem pasuje do etykiet, również na próbkach testowych. Walidacja nie miała już czego sprawdzać: odpowiedzi znała, zanim się zaczęła.
Gdy wybór kolumn robimy osobno w każdym podziale, tylko na części treningowej, wynik spada do 43%, czyli do poziomu zgadywania. Na 20 nowych zbiorach szumu średnio wychodzi 87% z wyciekiem i 50% bez niego. Ta sama metoda, te same dane, a różnica bierze się tylko z kolejności kroków.
Sprawdź sam. W haśle przełączasz, czy wybór cech dzieje się przed walidacją, czy w jej środku, i patrzysz, jak znika „odkrycie”.
4. Częsty błąd
„Wyciek to oszustwo, więc mnie nie dotyczy.” Wyciek prawie nigdy nie jest celowy. Typowe źródła: skalowanie albo uzupełnianie braków na całym zbiorze przed podziałem, wybór cech przed walidacją, kolumna, która powstaje dopiero po fakcie (na przykład data zwrotu w modelu, który ma przewidzieć zwrot), ten sam klient raz w treningu, raz w teście.
5. Gdzie ta analogia się psuje
Nauczyciel mógłby zauważyć, że zadania się powtarzają. Wyciek w danych nie zostawia śladu w samym wyniku: 82% na szumie wygląda dokładnie tak samo jak 82% na prawdziwym sygnale. Trzeba prześledzić, co model widział i w którym momencie.
6. Dlaczego to ważne w pracy
Podejrzanie dobry wynik to sygnał do szukania wycieku, a nie do świętowania. W scikit-learn każdy krok przygotowania danych, na przykład skalowanie albo wybór cech, wkłada się do Pipeline i dopiero całość oddaje się walidacji krzyżowej (potoki przetwarzania).
7. Pytanie powtórkowe
Odpowiedź na pytanie z poprzedniego numeru
Wybierasz sieć z 2 neuronami: 81,3% na teście wobec 72,0%. Problem pierwszej to przeuczenie: luka między treningiem a testem wynosi u niej 22,7 punktu procentowego, a u drugiej prawie zero. Więcej neuronów pozwoliło sieci zapamiętać szczegóły 75 kwiatów treningowych.
Nowe pytanie
Wracamy do przeuczenia. Drzewo decyzyjne ma ogromną lukę między wynikiem na treningu a wynikiem na teście. Podaj dwa sposoby, żeby ją zmniejszyć bez zbierania nowych danych.
Odpowiedź w następnym numerze.