Automatizace trénování modelů pomocí rozhraní příkazového řádku ML.NET
Rozhraní příkazového řádku ML.NET automatizuje generování modelů pro vývojáře .NET.
Pokud chcete rozhraní API ML.NET používat samostatně (bez rozhraní příkazového řádku ML.NET AutoML), musíte zvolit trenéra (implementaci algoritmu strojového učení pro konkrétní úlohu) a sadu transformací dat (příprava funkcí), která se použije na vaše data. Optimální kanál se bude lišit pro každou datovou sadu a výběr optimálního algoritmu ze všech možností se zvýší složitosti. Ještě více má každý algoritmus sadu hyperparametrů, které se mají ladit. Proto můžete strávit týdny a někdy měsíce na optimalizaci modelu strojového učení a snažit se najít nejlepší kombinace technik funkcí, algoritmů učení a hyperparametrů.
Rozhraní příkazového řádku ML.NET tento proces zjednodušuje pomocí automatizovaného strojového učení (AutoML).
Poznámka:
Tento článek se týká ML.NET rozhraní příkazového řádku a ML.NET AutoML, které jsou aktuálně ve verzi Preview, a materiál se může změnit.
Co je rozhraní příkazového řádku (CLI) ML.NET?
Rozhraní příkazového řádku ML.NET je nástroj .NET. Po instalaci získáte úlohu strojového učení a trénovací datovou sadu a vygeneruje ML.NET model a také kód jazyka C#, který se má spustit, aby používal model ve vaší aplikaci.
Jak je znázorněno na následujícím obrázku, je jednoduché vygenerovat vysoce kvalitní model ML.NET (serializovaný model .zip soubor) a ukázkový kód jazyka C# pro spuštění/skóre tohoto modelu. Kromě toho se vygeneruje také kód jazyka C#, který vytvoří nebo vytrénuje tento model, abyste mohli prozkoumat a iterovat algoritmus a nastavení používané pro vygenerovaný "nejlepší model".
Tyto prostředky můžete vygenerovat ze svých vlastních datových sad bez psaní kódu sami, takže také zvyšuje produktivitu, i když už víte, ML.NET.
V současné době jsou úlohy STROJOVÉho učení podporované rozhraním příkazového řádku ML.NET:
- Klasifikace
- Regrese
- Doporučení
- klasifikace obrázků
- Prognózování
- Vlak
Rozhraní příkazového řádku ML.NET je možné nainstalovat na základě operačního systému a jeho architektury pomocí následujícího příkazu:
dotnet tool install --global mlnet-<OS>-<ARCH>
Například verzi systému Windows x64 je možné nainstalovat s:
dotnet tool install --global mlnet-win-x64
Další informace najdete v průvodci instalací ML.NET rozhraní příkazového řádku .
Příklad použití (scénář klasifikace):
mlnet classification --dataset "yelp_labelled.txt" --label-col 1 --has-header false --train-time 10
K dispozici je také příkaz, ve kterém můžete trénovat pomocí souboru mbconfig . Soubor mbconfig se vytvoří při spuštění relace Tvůrce modelů.
Můžete ho spustit stejným způsobem v prostředí Windows PowerShell, macOS/Linux bash nebo windows CMD. Tabulkové automatické dokončování (návrhy parametrů) ale ve Windows CMD nebude fungovat.
Vygenerované výstupní prostředky
Příkazy úloh ML v rozhraní příkazového řádku generují ve výstupní složce následující prostředky:
- Řešení jazyka C# s:
- Konzolová aplikace, která spustí nebo vyhodnotí vygenerovaný model (aby se předpovědi v aplikacích koncových uživatelů s tímto modelem vytvořily).
- Konzolová aplikace s trénovacím kódem použitým k vygenerování tohoto modelu (pro účely učení nebo opětovné trénování modelu).
- Tento serializovaný model ("nejlepší model") se také poskytuje jako komprimovaný soubor .zip , který je připravený k použití pro spouštění předpovědí.
- Soubor mbconfig , který obsahuje konfigurační data, která umožňují otevřít model v Tvůrci modelů.
- Soubor protokolu s informacemi o všech iteracích a úklidech napříč několika vyhodnocenými algoritmy, včetně jejich podrobné konfigurace nebo kanálu.
První dva prostředky je možné přímo použít v aplikacích pro koncové uživatele (například ASP.NET core webových aplikací, služeb a desktopových aplikací) k předpovědím s tímto vygenerovaným modelem ML.
Třetí prostředek, trénovací kód, ukazuje, co ML.NET kód rozhraní API použil rozhraní příkazového řádku k trénování vygenerovaného modelu, takže můžete model znovu vytrénovat a prověřit a iterovat, na které konkrétní trenér/algoritmus a hyperparametry byly vybrány rozhraním příkazového řádku a AutoML v rámci pokrytí.
Porozumění kvalitě modelu
Když vygenerujete pomocí nástroje rozhraní příkazového řádku "nejlepší model", zobrazí se metriky kvality (například přesnost a R-Squared), které jsou vhodné pro úlohu ML, na kterou cílíte.
Tady jsou tyto metriky shrnuté podle úlohy ML, abyste pochopili kvalitu automaticky generovaného "nejlepšího modelu".
Metriky pro klasifikační modely
Následující obrázek zobrazuje seznam metrik klasifikace pro prvních pět modelů nalezených rozhraním příkazového řádku:
Přesnost je oblíbenou metrikou pro problémy klasifikace, ale přesnost není vždy nejlepší metrikou pro výběr nejlepšího modelu, jak je vysvětleno v následujících odkazech. Existují případy, kdy potřebujete vyhodnotit kvalitu modelu s dalšími metrikami.
Pokud chcete prozkoumat a pochopit metriky, které jsou výstupem rozhraní příkazového řádku, projděte si metriky vyhodnocení klasifikace.
Metriky pro modely regrese a doporučení
Regresní model dobře odpovídá datům, pokud jsou rozdíly mezi pozorovanými hodnotami a predikovanými hodnotami modelu malé a nestranné. Regresi je možné vyhodnotit pomocí určitých metrik.
Zobrazí se podobný seznam metrik pro pět nejlepších modelů kvality nalezených rozhraním příkazového řádku, s výjimkou tohoto případu, prvních pět se vztahuje k úloze ML regrese:
Pokud chcete prozkoumat a pochopit metriky, které jsou výstupem rozhraní příkazového řádku, podívejte se na metriky vyhodnocení pro regresi.