Sdílet prostřednictvím


Prevence přeurčení a nevyvážených 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ástrahy. Ve výchozím nastavení poskytuje funkce automatizovaného strojového učení ve službě Azure Machine Learning grafy a metriky, které vám pomůžou tato rizika identifikovat. Tento článek popisuje, jak můžete implementovat osvědčené postupy v automatizovaném strojovém učení, které vám pomůžou zmírnit běžné problémy.

Identifikace přeurčení

Přeurčení ve strojovém učení nastane, když model příliš dobře vyhovuje trénovacím datům. V důsledku toho model nemůže provádět přesné předpovědi na nezoznaných testovacích datech. Model si zapamatoval konkrétní vzory a šum v trénovacích datech a není dostatečně flexibilní, aby mohl vytvářet předpovědi skutečných dat.

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

Model Přesnost trénu Přesnost testu
A 99,9 % 95 %
T 87% 87%
C 99,9 % 45 %
  • Model A: Test pro tento model vytváří o něco méně přesnosti než trénování modelu. Existuje běžná nesprávná představa, že pokud je přesnost testu na nezoznaných datech nižší než přesnost trénování, model je přeurčené. Přesnost testů by ale měla být vždy menší než přesnost trénování. Rozdíl mezi přeurčením a odpovídajícím přizpůsobením dat se sníží na měření , kolik je přesnost menší.

  • Model A versus model B: Model A je lepší model, protože má vyšší přesnost testu. I když je přesnost testu mírně nižší na 95 %, nejedná se o významný rozdíl, který naznačuje, že přeurčení je přítomno. Model B není preferovaný, protože přesnost trénování a testování jsou podobné.

  • Model C: Tento model představuje jasný případ přeurčení. Přesnost trénování je vysoká a přesnost testu je nízká. Toto rozlišení je subjektivní, ale vychází z znalostí o vašem problému a datech a o tom, jaká je přijatelná velikost chyb.

Zabránit přeurčení

V nejreregnějších případech přetížený model předpokládá, že kombinace hodnot funkcí viditelné během trénování vždy vedou ke stejnému výstupu cíle. Abyste se vyhnuli přeurčení dat, doporučujeme postupovat podle osvědčených postupů strojového učení. V implementaci modelu můžete nakonfigurovat několik metod. Automatizované strojové učení také poskytuje ve výchozím nastavení další možnosti, které pomáhají zabránit přeurčení.

Následující tabulka shrnuje běžné osvědčené postupy:

Osvědčený postup Implementace Automatizované strojové učení
Používejte další trénovací data a eliminujte statistickou předsudky. X
Prevence úniku cíle X
Začlenění méně funkcí X
Podpora regularizace a optimalizace hyperparametrů X
Použití omezení složitosti modelu X
Použití křížového ověřování X

Použití osvědčených postupů pro zabránění přeurčení

Následující části popisují osvědčené postupy, které můžete použít v implementaci modelu strojového učení, aby se zabránilo přeurčení.

Použití dalších dat

Použití více dat je nejjednodušší a nejlepší způsob, jak zabránit přeurčení, a tento přístup obvykle zvyšuje přesnost. Když použijete více dat, bude pro model obtížnější si zapamatovat přesné vzory. Model 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, abyste zajistili, že trénovací data neobsahují izolované vzory, které v datech živé předpovědi neexistují. Tento scénář může být obtížné vyřešit, protože při porovnání s živými testovacími daty může existovat přeurčení.

Prevence úniku cíle

Cílový únik je podobný problém. Mezi trénovacími a testovacími sadami se nemusí zobrazit přeurčení, ale problém s únikem se zobrazí v době předpovědi. K cílovému úniku dochází, když váš model během trénování "podvádí" přístupem k datům, která by normálně neměla mít v době předpovědi. Příkladem je, aby model predikoval v pondělí, co je komoditní cena za pátek. Pokud vaše funkce omylem obsahují data ze čtvrtek, má model přístup k datům, která nejsou k dispozici v době předpovědi, protože je v budoucnu nevidí. Cílový únik je jednoduchá chyba, kterou je třeba vynechat. Často je vidět, kde máte neobvykle vysokou přesnost vašeho problému. Pokud se pokoušíte předpovědět cenu akcií a vytrénovali model s 95% přesností, je pravděpodobné, že někde ve vašich funkcích dojde k cílovému úniku informací.

Začlenění méně funkcí

Odebrání funkcí může také pomoct s přeurčením tím, že modelu zabráníte, aby měl příliš mnoho polí, která by bylo možné použít k zapamatování konkrétních vzorů, což způsobí, že bude flexibilnější. Může být obtížné měřit kvantitativním způsobem. Pokud můžete odebrat funkce a zachovat stejnou přesnost, může být model flexibilnější a snížit riziko přeurčení.

Kontrola funkcí automatizovaného strojového učení, aby se zabránilo přeurčení

Následující části popisují osvědčené postupy poskytované ve výchozím nastavení v automatizovaném strojovém učení, které pomáhají zabránit přeurčení.

Podpora regularizace a ladění hyperparametrů

Regularizace je proces minimalizace nákladové funkce k penalizaci složitých a přepracovaných modelů. Existují různé typy funkcí regularizace. Obecně platí, že všechny funkce postihují velikost, odchylku a složitost koeficientu modelu. Automatizované strojové učení používá současně L1 (Laso), L2 (Ridge) a ElasticNet (L1 a L2) v různých kombinacích s různými nastaveními hyperparametrů modelu, které řídí přeurčení. Automatizované strojové učení se liší v tom, kolik modelu je regulované, a zvolí nejlepší výsledek.

Použití 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čená speciálně pro algoritmy rozhodovacího stromu nebo doménové struktury. Maximální hloubka jednotlivých stromů je omezená a celkový počet stromů používaných v lesních nebo souborových technikách je omezený.

Použití křížového ověřování

Křížové ověřování (CV) je proces, který využívá mnoho podmnožina úplných trénovacích dat a trénování modelu na každé podmnožině. Myšlenka spočívá v tom, že model může mít štěstí a má velkou přesnost s jednou podmnožinou, ale při použití mnoha podmnožina nemůže model pokaždé dosáhnout vysoké přesnosti. Při provádění CV zadáte datovou sadu blokování ověření, zadáte složené soubory CV (počet podmnožiny) a automatizované strojové učení trénuje váš model a hyperparametry ladění, aby se minimalizovala chyba ve vaší ověřovací sadě. Jedno přeložení CV může být přemontované, ale použitím mnoha z nich proces snižuje pravděpodobnost, že je konečný model přepracován. Kompromisem je, že CV vede k delším časům trénování a vyšším nákladům, protože model natrénujete jednou pro každý n v podmnožině CV.

Poznámka:

Křížové ověřování není ve výchozím nastavení povolené. Tato funkce 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 je však proces automatizovaný.

Identifikace modelů s nevyrovnanými daty

Nevyvážená data se běžně vyskytují v datech pro scénáře klasifikace strojového učení a odkazuje 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ým pozitivním účinkům přesnosti modelu, protože vstupní data mají předsudky vůči jedné třídě, což vede k natrénovanému modelu k napodobení tohoto předsudku.

Úlohy automatizovaného strojového učení navíc automaticky generují následující grafy. Tyto grafy vám pomůžou pochopit správnost klasifikací modelu a identifikovat modely potenciálně ovlivněné nevyváženými daty.

Graf Popis
Konfuzní matice Vyhodnotí správně klasifikované popisky vůči skutečným popiskům dat.
Úplnost přesnosti Vyhodnotí poměr správných popisků oproti 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í nevyrovnaných dat

Automatizované strojové učení nabízí jako součást cíle zjednodušení pracovního postupu strojového učení integrované funkce, které vám pomůžou pracovat s nevyrovnanými daty:

  • Automatizované strojové učení vytvoří sloupec váhy jako vstup, který způsobí, že řádky v datech budou vážené nahoru nebo dolů, které lze použít 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, pokud je počet vzorků v menšinové třídě roven nebo menší než 20 % počtu vzorků ve většině tříd. Menšinová třída odkazuje na třídu s nejmenšími vzorky a většina tříd odkazuje na třídu s většinou vzorků. Později automatizované strojové učení spustí experiment s podsamplovými daty, abyste zkontrolovali, jestli použití váhy tříd může tento problém napravit a zlepšit výkon. Pokud zjistí lepší výkon prostřednictvím tohoto experimentu, použije nápravu.

  • Použijte metriku výkonu, která se zabývá lépe nevyrovnanými daty. Například AUC_weighted je primární metrika, která vypočítá příspěvek každé třídy na základě relativního počtu vzorků představujících tuto třídu. Tato metrika je robustnější proti nevyváženostem.

Následující techniky jsou dalšími možnostmi zpracování nevyvážených dat mimo automatizované strojové učení:

  • Převzorkujte na i nevyváženost tříd. Větší třídy můžete vzorek nahoru nebo vzorek dolů. Tyto metody vyžadují odborné znalosti ke zpracování a analýze.

  • Zkontrolujte metriky výkonu pro nevyrovnaná data. Například skóre F1 je harmonický průměr přesnosti a úplnosti. Přesnost měří přesnost klasifikátoru přesnost, kde vyšší přesnost označuje méně falešně pozitivních výsledků. Úplnost měří úplnost klasifikátoru, kde vyšší úplnost označuje méně falešně negativních výsledků.

Další krok