Popularne tematy
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Zespół Andrew Ng popełnił kiedyś duży błąd w pracy badawczej.
I zdarzyło się to z powodu losowego podziału danych.
Oto dokładnie, co się stało (z rozwiązaniem):
Powszechną praktyką jest generowanie zbiorów treningowych i walidacyjnych za pomocą losowego podziału.
Jednak w wielu sytuacjach może to być fatalne dla budowy modelu.
Rozważ zbudowanie modelu, który generuje podpisy do obrazów.
Z powodu wrodzonej natury języka, każdy obraz może mieć wiele różnych podpisów.
- Obraz-1 → Podpis-1, Podpis-2, Podpis-3, itd.
- Obraz-2 → Podpis-1, Podpis-2, Podpis-3, itd.
Sprawdź to 👇

Jeśli użyjemy losowego podziału, ten sam punkt danych (obraz) będzie dostępny w zbiorach treningowych i walidacyjnych.
W rezultacie oceniamy model na instancjach, na których był trenowany.
To jest przykład wycieku danych (nazywanego również wyciekiem grupowym), co prowadzi do nadmiernego dopasowania!

To samo zdarzyło się w artykule Andrew Ng, w którym przygotowano zestaw danych medycznych do wykrywania zapalenia płuc.
- Łączna liczba obrazów = 112k
- Łączna liczba pacjentów = 30k
Z powodu losowego podziału obrazy tego samego pacjenta były dostępne zarówno w zbiorze treningowym, jak i walidacyjnym.
Doprowadziło to do wycieku danych, a wyniki walidacji wyglądały znacznie lepiej, niż powinny.
To ich początkowy artykuł👇

Rozwiązano problem podziału grupy.
Są dwa kroki:
1) Zgrupuj wszystkie instancje treningowe odpowiadające jednemu obrazowi.
2) Po zgrupowaniu CAŁA GRUPA (wszystkie przykłady jednego obrazu) musi być losowo przypisana do zbioru treningowego lub walidacyjnego.
To zapobiegnie wyciekowi grupy.

Jeśli używasz Sklearn, GroupShuffleSplit wdraża ten pomysł.
Na przykład, rozważmy, że mamy następujący zbiór danych:
- x1 i x2 to cechy.
- y to zmienna docelowa.
- grupa oznacza kryteria grupowania.
Sprawdź to 👇

Najpierw importujemy GroupShuffleSplit z sklearn i instancjonujemy obiekt.
Następnie metoda split() tego obiektu pozwala nam na podział grup. Zwraca generator, który możemy rozpakować, aby uzyskać następujący wynik:
- Punkty danych w grupach „A” i „C” są razem w zbiorze treningowym.
- Punkty danych w grupie „B” są razem w zbiorze walidacyjnym/testowym.
Sprawdź to 👇

Kilka dni później zespół Andrew Ng zaktualizował artykuł po zastosowaniu tej samej strategii podziału grupy, aby upewnić się, że ci sami pacjenci nie trafili zarówno do zbioru treningowego, jak i walidacyjnego.
👉 Teraz twoja kolej: Czy spotkałeś się z tym problemem wcześniej?

17,66K
Najlepsze
Ranking
Ulubione

