Jak zabránit přeurčení a nevyváženost dat pomocí automatizovaného strojového učení

Přeurčení a nevyvážená data jsou při vytváření modelů strojového učení běžnými nástrahami. Automatizované strojové učení služby Azure Machine Learning ve výchozím nastavení poskytuje grafy a metriky, které vám pomůžou identifikovat tato rizika, a implementuje osvědčené postupy, které jim pomůžou je zmírnit.

Identifikace přeurčení

K přeurčení ve strojovém učení dochází, když model příliš dobře vyhovuje trénovacím datům a v důsledku toho nemůže přesně předpovědět na neviditelných testovacích datech. Jinými slovy, model si v trénovacích datech zapamatoval určité vzory a šum, ale není dostatečně flexibilní, aby mohl předpovídat skutečná data.

Zvažte následující vytrénované modely a jejich odpovídající přesnost trénování a testování.

Modelování Trénovat přesnost Přesnost testu
A 99,9 % 95 %
B 87% 87%
C 99,9 % 45 %

Představte si model A. Existuje běžná mylná představa, že pokud je přesnost testu na neviditelných datech nižší než přesnost trénování, model je přeurčené. Přesnost testu by však měla být vždy menší než přesnost trénování a rozdíl mezi přetěžováním a vhodným přizpůsobením se odvíjí od toho, o kolik méně přesné.

Porovnejte modely A a B, model A je lepší, protože má vyšší přesnost testů, a i když je přesnost testu při 95 % o něco nižší, nejedná se o významný rozdíl, který naznačuje, že přeurčení existuje. Model B byste nevybrali, protože přesnost trénování a testování jsou těsně pohromadě.

Model C představuje jasný případ přeurčení; přesnost trénování je vysoká, ale přesnost testu není téměř tak vysoká. Toto rozlišení je subjektivní, ale vychází ze znalostí vašeho problému a dat a přijatelného rozsahu chyby.

Zabránění přeurčení

V nejobvyklejších případech model předpokládá, že kombinace hodnot funkcí během trénování vždy vede ke stejnému výstupu cíle.

Nejlepší způsob, jak zabránit přeurčení, je postupovat podle osvědčených postupů ml, mezi které patří:

  • Použití více trénovacích dat a odstranění statistických předsudků
  • Prevence úniku cíle
  • Použití menšího počtu funkcí
  • Regularizace a optimalizace hyperparametrů
  • Omezení složitosti modelu
  • Křížové ověření

V kontextu automatizovaného strojového učení jsou první tři způsoby uvedeny osvědčené postupy, které implementujete. Poslední tři tučné položky jsou osvědčené postupy, které ve výchozím nastavení implementují automatizované strojové učení, aby chránily před přeurčením. V jiných nastaveních, než je automatizované strojové učení, stojí za to dodržování všech šesti osvědčených postupů, aby se zabránilo přeurčení modelů.

Osvědčené postupy, které implementujete

Použití dalších dat

Použití více dat je nejjednodušší a nejlepší způsob, jak zabránit přeurčení, a jako bonus navíc obvykle zvyšuje přesnost. Když použijete více dat, bude pro model obtížnější zapamatovat si přesné vzory a je nucen dosáhnout řešení, která jsou flexibilnější, aby vyhovovala více podmínkám. Je také důležité rozpoznat statistické předsudky, aby vaše trénovací data neobsávala izolované vzory, které v datech predikce za provozu neexistují. Tento scénář může být obtížné vyřešit, protože ve srovnání s živými testovacími daty může dojít k přeurčení.

Prevence úniku cíle

Únik cíle je podobný problém, kdy se nemusí zobrazit přeurčení mezi trénovacími nebo testovacími sadami, ale spíše se zobrazí v době předpovědi. K úniku cíle dochází, když model během trénování "podvádí" tím, že má přístup k datům, která by normálně neměl mít v době předpovědi. Pokud například chcete v pondělí předpovědět, jaká bude cena komodity v pátek, pokud by vaše funkce omylem zahrnuly data ze čtvrtka, model by tato data v době predikce neměl, protože do budoucnosti nevidí. Únik cíle je snadnou chybou, kterou můžete přehlédnout, ale často se vyznačuje neobvykle vysokou přesností vašeho problému. Pokud se pokoušíte předpovědět cenu akcií a vytrénovali jste model s 95% přesností, je pravděpodobné, že někde ve vašich funkcích dojde k úniku cíle.

Použití menšího počtu funkcí

Odebrání funkcí může také pomoct s přeurčením tím, že zabrání tomu, aby model měl příliš mnoho polí pro zapamatování si konkrétních vzorů, což způsobí větší flexibilitu. Kvantitativní měření může být obtížné, ale pokud můžete odebrat funkce a zachovat stejnou přesnost, pravděpodobně jste model udělali flexibilnější a snížili riziko přeurčení.

Osvědčené postupy – Implementace automatizovaného strojového učení

Optimalizace regularizace a hyperparametrů

Regularizace je proces minimalizace nákladové funkce za účelem penalizace složitých a přepracovaných modelů. Existují různé typy funkcí regularizace, ale obecně všechny penalizují velikost, odchylku a složitost koeficientu modelu. Automatizované strojové učení používá L1 (Lasso), L2 (Ridge) a ElasticNet (L1 a L2) současně v různých kombinacích s různými nastaveními hyperparametrů modelu, které řídí přeurčení. Automatizované strojové učení mění, do jaké míry je model regulovaný, a volí nejlepší výsledek.

Omezení složitosti modelu

Automatizované strojové učení také implementuje explicitní omezení složitosti modelu, aby se zabránilo přeurčení. Ve většině případů je tato implementace určena speciálně pro algoritmy rozhodovacího stromu nebo doménové struktury, kde je omezena maximální hloubka jednotlivých stromů a celkový počet stromů použitých v lese nebo skupinových technikách je omezený.

Křížové ověření

Křížové ověření (CV) je proces, kdy se vezme mnoho podmnožin úplných trénovacích dat a vytrénuje se model pro každou podmnožinu. Myšlenka je taková, že model může mít "štěstí" a mít velkou přesnost s jednou podmnožinou, ale použitím mnoha podmnožinami nedosáhne této vysoké přesnosti pokaždé. Když děláte CV, zadáte datovou sadu pro blokování ověření, určíte počet cvů (počet podmnožiny) a automatizované strojové učení trénuje model a optimalizujete hyperparametry, aby se minimalizovaly chyby ve vaší ověřovací sadě. Jeden záhyb CV by mohl být přetěžován, ale použitím mnoha z nich snižuje pravděpodobnost, že je konečný model přetěžován. Nevýhodou je, že výsledkem cv je delší doba trénování a vyšší náklady, protože model vytrénujete jednou pro každou n v podmnožině CV.

Poznámka

Křížové ověřování není ve výchozím nastavení povolené. musí být nakonfigurovaný v nastavení automatizovaného strojového učení. Po nakonfigurování křížového ověření a poskytnutí sady ověřovacích dat se ale proces automaticky provede.

Identifikace modelů s nevyváženými daty

Nevyvážená data se běžně vyskytují v datech pro scénáře klasifikace strojového učení a odkazují na data, která obsahují nepřiměřený poměr pozorování v každé třídě. Tato nerovnováha může vést k falešně vnímanému pozitivnímu efektu přesnosti modelu, protože vstupní data mají odchylku směrem k jedné třídě, což vede k tomu, že trénovaný model tuto odchylku napodobuje.

Úlohy automatizovaného strojového učení navíc automaticky generují následující grafy. Tyto grafy vám pomůžou porozumět správnosti klasifikací modelu a identifikovat modely, na které by mohly mít vliv nevyrovnaná data.

Graf Popis
Konfuzní matice Vyhodnotí správně klasifikované popisky oproti skutečným popiskům dat.
Úplnost přesnosti Vyhodnotí poměr správných popisků vůči poměru nalezených instancí popisků dat.
Křivky ROC Vyhodnotí poměr správných popisků vůči poměru falešně pozitivních popisků.

Zpracování nevyvážených dat

V rámci svého cíle zjednodušit pracovní postupy strojového učení má automatizované strojové učení integrované funkce, které pomáhají při práci s nevyváženými daty, jako jsou:

  • Sloupec váhy: Automatizované strojové učení vytvoří sloupec vah jako vstup, který způsobí, že se řádky v datech budou vážit nahoru nebo dolů, což může být použito k tomu, aby třída byla více nebo méně důležitá.

  • Algoritmy používané automatizovaným strojovém učení detekují nerovnováhu, když se počet vzorků v menšinové třídě rovná nebo je menší než 20 % počtu vzorků ve třídě většiny, kde třída menšiny odkazuje na třídu s nejmenším počtem vzorků a třída majoritní odkazuje na třídu s největším počtem vzorků. Následně automatizované strojové učení spustí experiment s podvzorkovými daty a zkontroluje, jestli by použití váhy třídy tento problém vyřešilo a zlepšilo výkon. Pokud tento experiment zjistí lepší výkon, použije se tento nápravný prostředek.

  • Použijte metriku výkonu, která lépe pracuje s nevyrovnanými daty. Například AUC_weighted je primární metrika, která počítá příspěvek každé třídy na základě relativního počtu vzorků představujících danou třídu, a proto je robustnější proti nerovnováze.

Následující techniky představují další možnosti zpracování nevyvážených dat mimo automatizované strojové učení.

  • Převzorkování dokonce i na nevyváženost tříd, buď vzorkováním větších tříd, nebo zmenšením vzorkování větších tříd. Tyto metody vyžadují odborné znalosti zpracování a analýzy.

  • Zkontrolujte metriky výkonu a vyhledejte nevyvážená data. Například skóre F1 je harmonický průměr přesnosti a úplnosti. Přesnost měří přesnost klasifikátoru, kde vyšší přesnost značí méně falešně pozitivních výsledků, zatímco úplnost měří úplnost klasifikátoru, kde vyšší úplnost znamená méně falešně negativních výsledků.

Další kroky

Projděte si příklady a naučte se vytvářet modely pomocí automatizovaného strojového učení: