Tým Andrewa Nga jednou udělal velkou chybu ve výzkumné práci. A stalo se to kvůli náhodnému rozdělení dat. Tady je přesně to, co se stalo (s řešením):
Běžné je generovat množiny trainů a validace pomocí náhodného dělení. V mnoha případech však může být pro stavbu modelů fatální. Zvažte vytvoření modelu, který generuje popisky k obrázkům. Díky přirozené povaze jazyka může mít každý obrázek mnoho různých popisků. - Obrázek-1 → Titulek-1, Titulek-2, Titulek-3 atd. - Obrázek-2 → Titulek-1, Titulek-2, Titulek-3 atd. Podívej se na to 👇
Pokud použijeme náhodné rozdělení, bude v trénovacích a validačních sadách k dispozici stejný datový bod (obrázek). V důsledku toho nakonec vyhodnotíme model na instancích, na kterých byl natrénován. Toto je příklad úniku dat (nazývaného také skupinový únik), který má za následek přeučení!
Totéž se stalo v článku Andrewa Nga, kde připravili lékařskou datovou sadu pro detekci zápalu plic. - Celkový počet obrázků = 112k - Celkový počet pacientů = 30 tisíc Díky náhodnému rozdělení byly obrazy stejného pacienta dostupné jak v tréninkových, tak validačních sadách. To vedlo k úniku dat a validační skóre vypadalo mnohem lépe, než by mělo. Toto je jejich první článek👇
Skupinové míchání to vyřešilo. Existují dva kroky: 1) Seskupit všechny tréninkové instance odpovídající jednomu obrázku. 2) Po seskupení musí být CELÁ SKUPINA (všechny příklady jednoho obrázku) náhodně přiřazena k vlaku nebo validační sadě. To zabrání úniku skupiny.
Pokud používáte Sklearn, GroupShuffleSplit tuto myšlenku implementuje. Jako příklad uvažujme, že máme následující datovou sadu: - x1 a x2 jsou tyto vlastnosti. - y je cílová proměnná. - skupina označuje kritéria seskupování. Podívej se na to 👇
Nejprve importujeme GroupShuffleSplit ze sklearn a instancujeme objekt. Dále metoda split() tohoto objektu umožňuje provést rozdělení skupin. Vrací generátor a můžeme jej rozebrat, abychom získali následující výstup: - Datové body ve skupinách "A" a "C" jsou společně ve trénovací množině. - Datové body ve skupině "B" jsou společně v validační/testovací sadě. Podívej se na to 👇
O několik dní později tým Andrewa Nga aktualizoval článek po použití stejné strategie rozdělení skupin, aby zajistil, že stejní pacienti neskončí v tréninkové i validační sadě. 👉 Předám vám předání: Setkali jste se s tímto problémem už dříve?
11,83K