Nejčastější dotazy k prognózování v automatickém strojovém učení

PLATÍ PRO: Sada Python SDK azure-ai-ml v2 (aktuální)

Tento článek odpovídá na běžné otázky týkající se prognóz v automatickém strojovém učení (AutoML). Obecné informace o metodologii prognózování v AutoML najdete v článku Přehled metod prognózování v autoML .

Návody začít vytvářet modely prognóz v AutoML?

Můžete začít tím, že si přečtete článek Nastavení automatického strojového učení pro trénování modelu prognózování časových řad . Praktické příklady najdete také v několika poznámkových blocích Jupyter:

Proč je automatické strojové učení na mých datech pomalé?

Neustále pracujeme na tom, aby bylo automatické strojové učení rychlejší a škálovatelné. Aby autoML fungovalo jako obecná prognózovací platforma, provádí rozsáhlé ověřování dat a komplexní přípravu funkcí a prohledává velký prostor modelu. Tato složitost může v závislosti na datech a konfiguraci vyžadovat spoustu času.

Jedním z běžných zdrojů pomalého modulu runtime je trénování automatického strojového učení s výchozím nastavením dat, která obsahují mnoho časových řad. Náklady na mnoho metod prognózování se škálují podle počtu řad. Například metody jako Exponential Smoothing a Prophet trénují model pro každou časovou řadu v trénovacích datech.

Funkce Mnoho modelů automatického strojového učení se škáluje na tyto scénáře distribucí trénovacích úloh napříč výpočetním clusterem. Úspěšně se použil na data s miliony časových řad. Další informace najdete v článku o mnoha modelech . Můžete si také přečíst o úspěchu mnoha modelů v datové sadě s vysokým profilem soutěže.

Jak můžu autoML zrychlit?

Podívejte se na odpověď Proč je automatické strojové učení na mých datech pomalé? a zjistěte, proč může být automatické strojové učení ve vašem případě pomalé.

Zvažte následující změny konfigurace, které můžou vaši úlohu urychlit:

  • Modely časových řad bloků , jako jsou ARIMA a Prorok.
  • Vypněte funkce zpětného ohlédnutí, jako jsou prodlevy a posuvná okna.
  • Snížit:
    • Počet pokusů/iterací.
    • Vypršení časového limitu zkušební verze nebo iterace.
    • Vypršení časového limitu experimentu
    • Počet záhybů křížového ověření.
  • Ujistěte se, že je povolené předčasné ukončení.

Jakou konfiguraci modelování mám použít?

Prognózování automatického strojového učení podporuje čtyři základní konfigurace:

Konfigurace Scenario Výhody Nevýhody
Výchozí automatické strojové učení Doporučuje se, pokud má datová sada malý počet časových řad, které mají zhruba podobné historické chování. – Jednoduchá konfigurace z kódu nebo sady SDK nebo studio Azure Machine Learning.

– AutoML se může učit v různých časových řadách, protože regresní modely sdružuje všechny řady dohromady v rámci trénování. Další informace najdete v tématu Seskupení modelů.
– Regresní modely můžou být méně přesné, pokud má časová řada v trénovacích datech divergentní chování.

– Trénování modelů časových řad může trvat dlouho, pokud trénovací data mají velký počet řad. Další informace najdete v odpovědi na článek Proč je automatické strojové učení na mých datech pomalé?
AutoML s hloubkovým učením Doporučeno pro datové sady s více než 1 000 pozorováními a potenciálně mnoha časovými řadami, které vykazují složité vzory. Když je funkce AutoML povolená, během trénování přetáhne modely dočasných konvolučních neurálních sítí (TCN). Další informace najdete v tématu Povolení hlubokého učení. – Jednoduchá konfigurace z kódu nebo sady SDK nebo studio Azure Machine Learning.

- Příležitosti pro křížové učení, protože TCN sdružuje data ze všech řad.

- Potenciálně vyšší přesnost kvůli velké kapacitě modelů hluboké neurální sítě (DNN). Další informace najdete v tématu Prognózování modelů v autoML.
- Trénování může trvat mnohem déle kvůli složitosti modelů DNN.

- U řad s malým množstvím historie tyto modely pravděpodobně nebudou těžit.
Mnoho modelů Doporučuje se, pokud potřebujete škálovatelným způsobem trénovat a spravovat velký počet modelů prognóz. Další informace najdete v článku o mnoha modelech . -Škálovatelné.

- Potenciálně vyšší přesnost, pokud se časové řady vzájemně liší.
- Žádné učení napříč časovými řadami.

– Z studio Azure Machine Learning nemůžete konfigurovat ani spouštět mnoho úloh modelů. V současné době je k dispozici pouze prostředí kódu nebo sady SDK.
Hierarchické časové řady (HTS) Doporučuje se, pokud řady ve vašich datech mají vnořenou hierarchickou strukturu a potřebujete trénovat nebo vytvářet prognózy na agregovaných úrovních hierarchie. Další informace najdete v článku o prognózování hierarchických časových řad . - Trénování na agregovaných úrovních může snížit šum v časových řadách listových uzlů a potenciálně vést k modelům s vyšší přesností.

– Prognózy pro libovolnou úroveň hierarchie můžete načíst agregací nebo rozložením prognóz od úrovně trénování.
- Musíte poskytnout úroveň agregace pro trénování. AutoML v současné době nemá algoritmus pro nalezení optimální úrovně.

Poznámka

Pokud je povolené hluboké učení, doporučujeme používat výpočetní uzly s grafickými procesory, abyste co nejlépe využili vysokou kapacitu DNN. Trénování může být mnohem rychlejší v porovnání s uzly, které mají jenom procesory. Další informace najdete v článku o velikostech virtuálních počítačů optimalizovaných pro GPU .

Poznámka

HTS je určen pro úlohy, u kterých se na agregovaných úrovních v hierarchii vyžaduje trénování nebo predikce. Pro hierarchická data, která vyžadují pouze trénování a predikci na úrovni uzlů, použijte místo toho mnoho modelů .

Jak můžu zabránit přeurčení a úniku dat?

AutoML používá osvědčené postupy strojového učení, jako je křížový výběr modelu, které zmírňují mnoho problémů s přeurčením. Existují však další možné zdroje přeurčení:

  • Vstupní data obsahují sloupce funkcí odvozené od cíle pomocí jednoduchého vzorce. Například funkce, která je přesným násobem cíle, může vést k téměř dokonalému skóre trénování. Model ale pravděpodobně nebude generalizovat na data, která jsou mimo ukázku. Doporučujeme, abyste data prozkoumali před trénováním modelu a odstranili sloupce, které "unikají" cílové informace.

  • Trénovací data používají funkce, které nejsou do budoucna známé, až do horizontu prognózy. Regresní modely AutoML v současné době předpokládají, že horizont prognózy zná všechny funkce. Doporučujeme, abyste svá data prozkoumali před trénováním a odebrali všechny sloupce funkcí, které jsou známé jenom historicky.

  • Mezi trénováním, ověřováním nebo testováním částí dat existují významné strukturální rozdíly (změny režimu). Představte si například dopad pandemie COVID-19 na poptávku po téměř jakémkoliv dobrejm období 2020 a 2021. Toto je klasický příklad změny režimu. Přeurčení kvůli změně režimu je nejnáročnějším problémem, který je potřeba vyřešit, protože je vysoce závislý na scénáři a k identifikaci může vyžadovat hluboké znalosti.

    Jako první linii obrany se pokuste rezervovat 10 až 20 procent celkové historie pro ověřovací data nebo křížová ověření dat. Toto množství ověřovacích dat není vždy možné rezervovat, pokud je historie trénování krátká, ale je to osvědčený postup. Další informace najdete v tématu trénovací a ověřovací data.

Co znamená, že moje tréninková práce dosáhne dokonalého skóre ověření?

Při prohlížení metrik ověřování z trénovací úlohy je možné zobrazit dokonalá skóre. Dokonalé skóre znamená, že prognóza a skutečné hodnoty v ověřovací sadě jsou stejné nebo téměř stejné. Máte například odmocněnou střední kvadratickou chybu rovnou 0,0 nebo skóre R2 1,0.

Dokonalé skóre ověření obvykle značí, že model je vážně přeučuje, pravděpodobně kvůli úniku dat. Nejlepší postup je zkontrolovat úniky dat a odstranit sloupce, které netěsnost způsobují.

Co když data časových řad nemají pravidelně rozmíscená pozorování?

Modely prognózování Automatizovaného strojového učení vyžadují, aby trénovací data měla pravidelně rozložená pozorování s ohledem na kalendář. Tento požadavek zahrnuje případy, jako jsou měsíční nebo roční pozorování, kdy se počet dnů mezi pozorováními může lišit. Data závislá na čase nemusí tento požadavek splňovat ve dvou případech:

  • Data mají jasně definovanou frekvenci, ale chybějící pozorování vytvářejí mezery v řadě. V tomto případě se AutoML pokusí zjistit frekvenci, vyplnit nová pozorování mezer a načte chybějící hodnoty cíle a funkce. Volitelně může uživatel nakonfigurovat metody imputace prostřednictvím nastavení sady SDK nebo webového uživatelského rozhraní. Další informace najdete v tématu Vlastní extrakce příznaků.

  • Data nemají dobře definovanou frekvenci. To znamená, že doba trvání mezi pozorováními nemá rozpoznatelný vzor. Příkladem jsou transakční data, jako jsou data ze systému point-of-sales. V takovém případě můžete autoML nastavit tak, aby data agreguje na zvolenou frekvenci. Můžete zvolit pravidelnou frekvenci, která nejlépe vyhovuje datům a cílům modelování. Další informace najdete v tématu Agregace dat.

Návody zvolit primární metriku?

Primární metrika je důležitá, protože její hodnota v ověřovacích datech určuje nejlepší model během úklidu a výběru. Normalizované odmocněná střední kvadratická chyba (NRMSE) a normalizovaná střední absolutní chyba (NMAE) jsou obvykle nejlepší volbou pro primární metriku při úlohách prognózování.

Chcete-li si mezi nimi vybrat, mějte na paměti, že NRMSE penalizuje odlehlé hodnoty v trénovacích datech více než NMAE, protože používá druhou mocninu chyby. NMAE může být lepší volbou, pokud chcete, aby model byl méně citlivý na odlehlé hodnoty. Další informace najdete v tématu Regrese a prognózování metrik.

Poznámka

Jako primární metriku pro prognózování nedoporučujeme používat skóre R2 neboli R2.

Poznámka

AutoML nepodporuje pro primární metriku vlastní ani uživatelem poskytnuté funkce. Musíte zvolit jednu z předdefinovaných primárních metrik, které AutoML podporuje.

Jak můžu zlepšit přesnost modelu?

  • Ujistěte se, že konfigurujete AutoML tím nejlepším způsobem pro svá data. Další informace najdete v odpovědi Jakou konfiguraci modelování mám použít? .
  • Podrobné průvodce vytvářením a vylepšováním modelů prognóz najdete v poznámkovém bloku s recepty prognóz.
  • Vyhodnoťte model pomocí zpětných testů v několika cyklech prognózy. Tento postup poskytuje robustnější odhad chyb prognózy a poskytuje standardní hodnoty pro měření vylepšení. Příklad najdete v poznámkovém bloku zpětného testování.
  • Pokud jsou data hlučná, zvažte jejich agregaci na hrubší frekvenci, abyste zvýšili poměr signálu k šumu. Další informace najdete v tématu Četnost a agregace cílových dat.
  • Přidejte nové funkce, které vám můžou pomoct předpovědět cíl. Při výběru trénovacích dat vám můžou výrazně pomoct odborné znalosti týkající se dané problematiky.
  • Porovnejte hodnoty metrik ověřování a testování a určete, jestli vybraný model nedoučuje nebo přeurčuje data. Tyto znalosti vás mohou vést k lepší konfiguraci trénování. Můžete například určit, že v reakci na přeurčení potřebujete použít více záhybů křížového ověřování.

Vybere AutoML vždy stejný nejlepší model ze stejných trénovacích dat a konfigurace?

Proces vyhledávání modelů automatizovaného strojového učení není deterministický, takže ne vždy vybírá stejný model ze stejných dat a konfigurace.

Návody opravit chybu kvůli nedostatku paměti?

Existují dva typy chyb paměti:

  • Nedostatek paměti RAM
  • Nedostatek paměti disku

Nejprve se ujistěte, že autoML konfigurujete co nejlépe pro svá data. Další informace najdete v odpovědi Jakou konfiguraci modelování mám použít? .

V případě výchozího nastavení Automatizovaného strojového učení můžete chyby způsobené nedostatkem paměti RAM opravit pomocí výpočetních uzlů s více paměti RAM. Obecné pravidlo je, že velikost volné paměti RAM by měla být alespoň 10krát větší než nezpracovaná velikost dat, aby se autoML spustilo s výchozím nastavením.

Chyby způsobené nedostatkem paměti disku můžete vyřešit odstraněním výpočetního clusteru a vytvořením nového.

Jaké pokročilé scénáře prognózování AutoML podporuje?

AutoML podporuje následující pokročilé scénáře predikcí:

  • Kvantilové prognózy
  • Robustní vyhodnocení modelu prostřednictvím průběžných prognóz
  • Prognózování za horizontem prognózy
  • Prognózování v případech, kdy mezi trénovacími a prognózovacími obdobími dochází k časové prodlevě

Příklady a podrobnosti najdete v poznámkovém bloku pro pokročilé scénáře prognózování.

Návody zobrazit metriky z prognózy trénovacích úloh?

Pokud chcete najít hodnoty metrik trénování a ověřování, přečtěte si téma Zobrazení informací o úlohách a spuštěních ve studiu. Metriky pro jakýkoli model prognózy natrénovaný v AutoML můžete zobrazit tak, že přejdete do modelu z uživatelského rozhraní úlohy AutoML ve studiu a vyberete kartu Metriky .

Snímek obrazovky znázorňující rozhraní metrik pro model prognózování Automatizovaného strojového učení

Návody selhání ladění při prognózování trénovacích úloh?

Pokud úloha prognózování Automatizovaného strojového učení selže, může vám s diagnostikou a řešením problému pomoct chybová zpráva v uživatelském rozhraní studia. Nejlepším zdrojem informací o selhání nad rámec chybové zprávy je protokol ovladače pro úlohu. Pokyny k vyhledání protokolů ovladačů najdete v tématu Zobrazení informací o úlohách a spuštěních pomocí MLflow.

Poznámka

Pro úlohu Mnoho modelů nebo HTS se trénování obvykle provádí na výpočetních clusterech s více uzly. Protokoly pro tyto úlohy jsou k dispozici pro každou IP adresu uzlu. V takovém případě je potřeba vyhledat protokoly chyb v každém uzlu. Protokoly chyb spolu s protokoly ovladačů jsou ve složce user_logs pro každou IP adresu uzlu.

Návody nasadit model z prognózy trénovacích úloh?

Model z prognózování trénovacích úloh můžete nasadit některým z těchto způsobů:

V případě nasazení uživatelského rozhraní doporučujeme použít některou z těchto možností:

  • Koncový bod v reálném čase
  • Koncový bod batch

Snímek obrazovky s možnostmi nasazení pro model prognózování Automatizovaného strojového učení

Nepoužívejte první možnost koncový bod v reálném čase (rychlý).

Poznámka

V současné chvíli nepodporujeme nasazení modelu MLflow z prognózování trénovacích úloh prostřednictvím sady SDK, rozhraní příkazového řádku nebo uživatelského rozhraní. Pokud to zkusíte, zobrazí se chyby.

Co je pracovní prostor, prostředí, experiment, výpočetní instance nebo cílový výpočetní objekt?

Pokud neznáte koncepty služby Azure Machine Learning, začněte články Co je Azure Machine Learning? a Co je pracovní prostor Azure Machine Learning?

Další kroky