Referenční informace k příkazům rozhraní příkazového řádku ML.NET

Příkazy classificationa recommendation , regressionjsou hlavní příkazy poskytované nástrojem ML.NET CLI. Tyto příkazy umožňují generovat kvalitní ML.NET modely pro klasifikaci, regresi a doporučení pomocí automatizovaného strojového učení (AutoML) a ukázkového kódu jazyka C# pro spuštění a hodnocení tohoto modelu. Kromě toho se vygeneruje kód jazyka C# pro trénování modelu, abyste mohli prozkoumat algoritmus a nastavení modelu.

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.

Přehled

Příklad použití:

mlnet regression --dataset "cars.csv" --label-col price

Příkazy mlnet úkolů ML (classification, regression, recommendationa forecasting) generují následující prostředky:

  • Serializovaný model .zip ("nejlepší model") připravený k použití.
  • Kód jazyka C# pro spuštění nebo skóre vygenerovaného modelu
  • Kód jazyka C# s trénovacím kódem použitým k vygenerování modelu.

První dva prostředky je možné přímo použít v aplikacích pro koncové uživatele (ASP.NET core webovou aplikaci, služby, desktopovou aplikaci a další) k předpovědím s modelem.

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, abyste mohli prozkoumat konkrétní algoritmus a nastavení modelu.

Příklady

Nejjednodušší příkaz rozhraní příkazového řádku pro problém klasifikace (AutoML odvodí většinu konfigurace ze zadaných dat):

mlnet classification --dataset "customer-feedback.tsv" --label-col Sentiment

Další jednoduchý příkaz rozhraní příkazového řádku pro problém s regresí:

mlnet regression --dataset "cars.csv" --label-col Price

Vytvoření a trénování klasifikačního modelu pomocí trénování datové sady, testovací datové sady a dalších explicitních argumentů přizpůsobení:

mlnet classification --dataset "/MyDataSets/Population-Training.csv" --test-dataset "/MyDataSets/Population-Test.csv" --label-col "InsuranceRisk" --cache on --train-time 600

Možnosti příkazů

Příkazy mlnet úloh ML (classification, , recommendationregression, forecastinga train) trénuje více modelů na základě poskytnuté datové sady a ML.NET možností rozhraní příkazového řádku. Tyto příkazy také vyberou nejlepší model, uloží model jako serializovaný soubor .zip a vygenerují související kód jazyka C# pro bodování a trénování.

Možnosti klasifikace

Spuštění mlnet classification vytrénuje klasifikační model. Tento příkaz zvolte, pokud chcete, aby model ML kategorizoval data do 2 nebo více tříd (např. analýza mínění).

mlnet classification

--dataset <path> (REQUIRED)

--label-col <col> (REQUIRED)

--cache <option>

--has-header (Default: true)

--ignore-cols <cols>

--log-file-path <path>

--name <name>

-o, --output <path>

--test-dataset <path>

--train-time <time> (Default: 30 minutes, in seconds)

--validation-dataset <path>

-v, --verbosity <v>

-?, -h, --help

Možnosti regrese

Spuštění mlnet regression vytrénuje regresní model. Tento příkaz zvolte, pokud chcete, aby model ML předpověděl číselnou hodnotu (např. předpověď ceny).

mlnet regression

--dataset <path> (REQUIRED)

--label-col <col> (REQUIRED)

--cache <option>

--has-header (Default: true)

--ignore-cols <cols>

--log-file-path <path>

--name <name>

-o, --output <path>

--test-dataset <path>

--train-time <time> (Default: 30 minutes, in seconds)

--validation-dataset <path>

-v, --verbosity <v>

-?, -h, --help

Možnosti doporučení

Spuštěním mlnet recommendation se vytrénuje model doporučení. Tento příkaz zvolte, pokud chcete, aby model ML doporučoval položky uživatelům na základě hodnocení (např. doporučení k produktu).

mlnet recommendation

--dataset <path> (REQUIRED)

--item-col <col> (REQUIRED)

--rating-col <col> (REQUIRED)

--user-col <col> (REQUIRED)

--cache <option>

--has-header (Default: true)

--log-file-path <path>

--name <name>

-o, --output <path>

--test-dataset <path>

--train-time <time> (Default: 30 minutes, in seconds)

--validation-dataset <path>

-v, --verbosity <v>

-?, -h, --help

Neplatné možnosti vstupu způsobí, že nástroj rozhraní příkazového řádku vygeneruje seznam platných vstupů a chybovou zprávu.

Možnosti prognózování

Spuštění mlnet forecasting vytrénuje model prognózování časových řad. Tento příkaz zvolte, pokud chcete, aby model ML předpověděl hodnotu na základě historických dat (například prognózování prodeje).

mlnet forecasting

--dataset <dataset> (REQUIRED)

--horizon <horizon> (REQUIRED)

--label-col <label-col> (REQUIRED)

--time-col <time-col> (REQUIRED)

--cache <Auto|Off|On>

--has-header

--log-file-path <log-file-path>

--name <name>

-o, --output <output>

--test-dataset <test-dataset>

--train-time <train-time>

-v, --verbosity <verbosity>

Možnosti trénu

Spuštění mlnet train vytrénuje model na základě souboru mbconfig vygenerovaného z Tvůrce modelů. Aby tento příkaz fungoval, musí být trénovací data ve stejném adresáři jako soubor mbconfig.

-training-config <training-config> (REQUIRED)

--log-file-path <log-file-path>

-v, --verbosity <verbosity>

Datová sada

--dataset | -d (řetězec)

Tento argument poskytuje cestu k souboru jedné z následujících možností:

  • A: Celý soubor datové sady: Pokud používáte tuto možnost a uživatel tuto možnost nezadá --test-dataset , --validation-datasetpoužije se křížové ověření (k-fold atd.) nebo automatizované přístupy k rozdělení dat interně k ověření modelu. V takovém případě bude uživatel muset zadat cestu k souboru datové sady.

  • B: Soubor trénovací datové sady: Pokud uživatel také poskytuje datové sady pro ověření modelu (použití --test-dataset a volitelně --validation-dataset), --dataset znamená to, že argument má jenom trénovací datovou sadu. Například při použití přístupu 80 – 20 % k ověření kvality modelu a získání metrik přesnosti bude mít "trénovací datová sada" 80 % dat a testovací datová sada bude mít 20 % dat.

Testovací datová sada

--test-dataset | -t (řetězec)

Cesta k souboru odkazující na soubor testovací datové sady, například při použití přístupu 80 – 20 % při provádění pravidelných ověření za účelem získání metrik přesnosti.

Pokud používáte --test-dataset, --dataset je vyžadováno také.

Argument --test-dataset je nepovinný, pokud se nepoužívá datová sada --validation. V takovém případě musí uživatel použít tři argumenty.

Ověřovací datová sada

--validation-dataset | -v (řetězec)

Cesta k souboru odkazující na soubor ověřovací datové sady Ověřovací datová sada je v každém případě volitelná.

Pokud používáte validation dataset, mělo by se jednat o následující chování:

  • Argumenty test-dataset a --dataset argumenty jsou také povinné.

  • Datová validation-dataset sada se používá k odhadu chyby předpovědi pro výběr modelu.

  • Slouží test-dataset k posouzení zobecnění chyby konečného zvoleného modelu. V ideálním případě by se testovací sada měla uchovávat v trezoru a měla by být uvedena pouze na konci analýzy dat.

V podstatě platí, že při použití validation dataset plus test dataset, fáze ověřování je rozdělena do dvou částí:

  1. V první části se podíváte na modely a vyberete nejlepší přístup s využitím ověřovacích dat (=ověření).
  2. Pak odhadnete přesnost vybraného přístupu (=test).

Proto rozdělení dat může být 80.10.10 nebo 75.15.10. Příklad:

  • training-dataset soubor by měl obsahovat 75 % dat.
  • validation-dataset soubor by měl obsahovat 15 % dat.
  • test-dataset soubor by měl obsahovat 10 % dat.

V každém případě se o těchto procentech rozhodne uživatel pomocí rozhraní příkazového řádku, který soubory už rozdělí.

Sloupec popisku

--label-col (int nebo řetězec)

Pomocí tohoto argumentu je možné určit konkrétní sloupec cíle/cíle (proměnnou, kterou chcete predikovat) pomocí názvu sloupce nastaveného v záhlaví datové sady nebo číselného indexu sloupce v souboru datové sady (hodnoty indexu sloupce začínají hodnotou 0).

Tento argument se používá pro problémy klasifikace a regrese .

Sloupec položky

--item-col (int nebo řetězec)

Sloupec položky obsahuje seznam položek, které uživatelé ohodnoťte (položky se doporučuje uživatelům). Tento sloupec lze zadat pomocí názvu sloupce nastaveného v záhlaví datové sady nebo číselného indexu sloupce v souboru datové sady (hodnoty indexu sloupce začínají hodnotou 0).

Tento argument se používá pouze pro úlohu doporučení .

Sloupec Hodnocení

--rating-col (int nebo řetězec)

Sloupec hodnocení obsahuje seznam hodnocení, která uživatelé přidělují položkám. Tento sloupec lze zadat pomocí názvu sloupce nastaveného v záhlaví datové sady nebo číselného indexu sloupce v souboru datové sady (hodnoty indexu sloupce začínají hodnotou 0).

Tento argument se používá pouze pro úlohu doporučení .

Sloupec Uživatele

--user-col (int nebo řetězec)

Sloupec uživatele obsahuje seznam uživatelů, kteří udávají hodnocení položkám. Tento sloupec lze zadat pomocí názvu sloupce nastaveného v záhlaví datové sady nebo číselného indexu sloupce v souboru datové sady (hodnoty indexu sloupce začínají hodnotou 0).

Tento argument se používá pouze pro úlohu doporučení .

Ignorovat sloupce

--ignore-columns (řetězec)

Pomocí tohoto argumentu můžete ignorovat existující sloupce v souboru datové sady, aby nebyly načteny a používány trénovacími procesy.

Zadejte názvy sloupců, které chcete ignorovat. K oddělení více názvů sloupců použijte ", " (čárka s mezerou) nebo " (mezera). U názvů sloupců obsahujících prázdné znaky (např. "přihlášeno") můžete použít uvozovky.

Příklad:

--ignore-columns email, address, id, logged_in

Obsahuje záhlaví

--has-header (bool)

Určete, jestli mají soubory datových sad řádek záhlaví. Možné hodnoty jsou:

  • true
  • false

Rozhraní příkazového řádku ML.NET se pokusí tuto vlastnost zjistit, pokud tento argument uživatel nezadá.

Trénovat čas

--train-time (řetězec)

Ve výchozím nastavení je maximální doba zkoumání a trénování 30 minut.

Tento argument nastaví maximální dobu (v sekundách) procesu k prozkoumání více trenérů a konfigurací. Nakonfigurovaný čas může být překročen, pokud je zadaný čas příliš krátký (řekněme 2 sekundy) pro jednu iteraci. V tomto případě je skutečný čas potřebný k vytvoření jedné konfigurace modelu v jedné iteraci.

Potřebný čas pro iterace se může lišit v závislosti na velikosti datové sady.

Mezipaměť

--cache (řetězec)

Pokud používáte ukládání do mezipaměti, načte se celá trénovací datová sada do paměti.

U malých a středních datových sad může používání mezipaměti výrazně zlepšit výkon trénování, což znamená, že doba trénování může být kratší, než když mezipaměť nepoužíváte.

U velkých datových sad ale načítání všech dat v paměti může mít negativní vliv, protože se můžete dostat z paměti. Při trénování s velkými soubory datových sad a bez použití mezipaměti budou ML.NET streamovat bloky dat z jednotky, když při trénování potřebuje načíst více dat.

Můžete určit tyto hodnoty:

on: Vynutí použití mezipaměti při trénování. off: Vynutí použití mezipaměti při trénování. auto: V závislosti na heuristice AutoML se mezipaměť použije, nebo ne. Malé nebo střední datové sady obvykle budou používat mezipaměť a velké datové sady nebudou používat mezipaměť, pokud zvolíte tuto auto možnost.

Pokud parametr nezadáte --cache , použije se ve výchozím nastavení konfigurace mezipaměti auto .

Název

--name (řetězec)

Název vytvořeného výstupního projektu nebo řešení Pokud není zadaný žádný název, použije se název sample-{mltask} .

Soubor modelu ML.NET (soubor .ZIP) získá také stejný název.

Výstupní cesta

--output | -o (řetězec)

Umístění kořenového umístění nebo složky pro umístění generovaného výstupu Výchozí je aktuální adresář.

Podrobnosti

--verbosity | -v (řetězec)

Nastaví úroveň podrobností standardního výstupu.

Povolené hodnoty jsou následující:

  • q[uiet]
  • m[inimal] (ve výchozím nastavení)
  • diag[nostic] (úroveň informací protokolování)

Ve výchozím nastavení by nástroj rozhraní příkazového řádku měl při práci zobrazit určitou minimální zpětnou vazbu (minimal), například zmínit, že funguje, a pokud je to možné, kolik času zbývá nebo kolik času je dokončeno.

Help

-h |--help

Vytiskne nápovědu pro příkaz s popisem parametru každého příkazu.

Viz také