Kommandoreferensen för ML.NET CLI

Kommandona classification, regressionoch recommendation är de viktigaste kommandona som tillhandahålls av verktyget ML.NET CLI. Med de här kommandona kan du generera ML.NET modeller av god kvalitet för klassificerings-, regressions- och rekommendationsmodeller med hjälp av automatisk maskininlärning (AutoML) samt C#-exempelkoden för att köra/poängsätta modellen. Dessutom genereras C#-koden för att träna modellen så att du kan undersöka modellens algoritm och inställningar.

Kommentar

Den här artikeln refererar till ML.NET CLI och ML.NET AutoML, som för närvarande finns i förhandsversion, och material kan komma att ändras.

Översikt

Exempel på användning:

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

ML-aktivitetskommandona mlnet (classification, regression, recommendationoch forecasting) genererar följande tillgångar:

  • En serialiserad modell .zip ("bästa modell") som är redo att användas.
  • C#-kod för att köra/poängsätta den genererade modellen.
  • C#-kod med träningskoden som används för att generera modellen.

De första två tillgångarna kan användas direkt i dina slutanvändarappar (ASP.NET Core-webbapp, tjänster, skrivbordsapp med mera) för att göra förutsägelser med modellen.

Den tredje tillgången, träningskoden, visar vilken ML.NET API-kod som användes av CLI för att träna den genererade modellen, så att du kan undersöka modellens specifika algoritm och inställningar.

Exempel

Det enklaste CLI-kommandot för ett klassificeringsproblem (AutoML härleder det mesta av konfigurationen från angivna data):

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

Ett annat enkelt CLI-kommando för ett regressionsproblem:

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

Skapa och träna en klassificeringsmodell med en träningsdatauppsättning, en testdatauppsättning och ytterligare explicita argument för anpassning:

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

Kommandoalternativ

ML-aktivitetskommandona mlnet (classification, , regressionrecommendation, forecastingoch train) tränar flera modeller baserat på den angivna datamängden och ML.NET CLI-alternativ. Dessa kommandon väljer också den bästa modellen, sparar modellen som en serialiserad .zip fil och genererar relaterad C#-kod för bedömning och träning.

Klassificeringsalternativ

Om du kör mlnet classification tränas en klassificeringsmodell. Välj det här kommandot om du vill att en ML-modell ska kategorisera data i 2 eller fler klasser (t.ex. attitydanalys).

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

Alternativ för regression

Om du kör mlnet regression tränas en regressionsmodell. Välj det här kommandot om du vill att en ML-modell ska förutsäga ett numeriskt värde (t.ex. prisförutsägelse).

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

Rekommendationsalternativ

Om du kör mlnet recommendation tränas en rekommendationsmodell. Välj det här kommandot om du vill att en ML-modell ska rekommendera objekt till användare baserat på klassificeringar (t.ex. produktrekommendationer).

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

Ogiltiga indataalternativ gör att CLI-verktyget genererar en lista över giltiga indata och ett felmeddelande.

Prognostiseringsalternativ

Körning mlnet forecasting tränar en prognosmodell för tidsserier. Välj det här kommandot om du vill att en ML-modell ska prognostisera ett värde baserat på historiska data (till exempel försäljningsprognoser).

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>

Tågalternativ

Om du kör mlnet train tränas en modell baserat på en "mbconfig"-fil som genererats från Model Builder. För att det här kommandot ska fungera måste träningsdata finnas i samma katalog som filen "mbconfig".

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

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

-v, --verbosity <verbosity>

Datamängd

--dataset | -d (sträng)

Det här argumentet ger filsökvägen till något av följande alternativ:

  • S: Hela datamängdsfilen: Om du använder det här alternativet och användaren inte tillhandahåller --test-dataset och --validation-dataset, kommer korsvalidering (k-fold osv.) eller automatiserade datadelningsmetoder att användas internt för att verifiera modellen. I så fall behöver användaren bara ange datauppsättningens filsökväg.

  • B: Utbildningsdatauppsättningsfilen: Om användaren även tillhandahåller datauppsättningar för modellverifiering (med och --test-dataset valfritt --validation-dataset) --dataset innebär argumentet att endast ha "träningsdatauppsättningen". När du till exempel använder en metod på 80– 20 % för att verifiera modellens kvalitet och för att få noggrannhetsmått, kommer "träningsdatauppsättningen" att ha 80 % av data och "testdatauppsättningen" skulle ha 20 % av data.

Testa datauppsättning

--test-dataset | -t (sträng)

Filsökväg som pekar på testdatauppsättningsfilen, till exempel när du använder en metod på 80–20 % när du gör regelbundna valideringar för att få noggrannhetsmått.

Om du använder --test-datasetmåste du också göra det --dataset .

Argumentet --test-dataset är valfritt om inte datauppsättningen --validation-används. I så fall måste användaren använda de tre argumenten.

Datauppsättning för validering

--validation-dataset | -v (sträng)

Filsökväg som pekar på valideringsdatauppsättningsfilen. Valideringsdatauppsättningen är i alla fall valfri.

Om du använder en validation datasetbör beteendet vara:

  • Argumenten test-dataset och --dataset krävs också.

  • Datamängden validation-dataset används för att beräkna förutsägelsefel för modellval.

  • test-dataset Används för utvärdering av generaliseringsfelet för den slutliga valda modellen. Helst bör testuppsättningen förvaras i ett "valv" och endast tas fram i slutet av dataanalysen.

När du använder plus validation datasettest dataset- delas valideringsfasen i två delar:

  1. I den första delen tittar du bara på dina modeller och väljer den metod som fungerar bäst med hjälp av valideringsdata (=validering)
  2. Sedan beräknar du noggrannheten för den valda metoden (=test).

Därför kan separationen av data vara 80/10/10 eller 75/15/10. Till exempel:

  • training-dataset filen ska ha 75 % av data.
  • validation-dataset filen ska ha 15 % av data.
  • test-dataset filen ska ha 10 % av data.

I vilket fall som helst avgörs dessa procentandelar av användaren med hjälp av CLI som anger att filerna redan har delats upp.

Etikettkolumn

--label-col (int eller sträng)

Med det här argumentet kan en specifik målkolumn (variabeln som du vill förutsäga) anges med hjälp av kolumnens namn som anges i datauppsättningens huvud eller kolumnens numeriska index i datauppsättningens fil (kolumnindexvärdena börjar vid 0).

Det här argumentet används för klassificerings- och regressionsproblem .

Artikelkolumn

--item-col (int eller sträng)

Objektkolumnen innehåller en lista över objekt som användarna betygsätter (objekt rekommenderas till användare). Den här kolumnen kan anges med hjälp av kolumnens namnuppsättning i datauppsättningens huvud eller kolumnens numeriska index i datauppsättningens fil (kolumnindexvärdena börjar vid 0).

Det här argumentet används endast för rekommendationsaktiviteten.

Klassificeringskolumn

--rating-col (int eller sträng)

Klassificeringskolumnen har en lista över klassificeringar som ges till objekt av användare. Den här kolumnen kan anges med hjälp av kolumnens namnuppsättning i datauppsättningens huvud eller kolumnens numeriska index i datauppsättningens fil (kolumnindexvärdena börjar vid 0).

Det här argumentet används endast för rekommendationsaktiviteten.

Användarkolumn

--user-col (int eller sträng)

Användarkolumnen innehåller en lista över användare som ger betyg till objekt. Den här kolumnen kan anges med hjälp av kolumnens namnuppsättning i datauppsättningens huvud eller kolumnens numeriska index i datauppsättningens fil (kolumnindexvärdena börjar vid 0).

Det här argumentet används endast för rekommendationsaktiviteten.

Ignorera kolumner

--ignore-columns (sträng)

Med det här argumentet kan du ignorera befintliga kolumner i datamängdsfilen så att de inte läses in och används av träningsprocesserna.

Ange de kolumnnamn som du vill ignorera. Använd ", " (kommatecken med blanksteg) eller " (blanksteg) för att separera flera kolumnnamn. Du kan använda citattecken för kolumnnamn som innehåller blanksteg (t.ex. "inloggad").

Exempel:

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

Har sidhuvud

--has-header (bool)

Ange om datauppsättningsfilerna har en rubrikrad. Möjliga värden är:

  • true
  • false

Den ML.NET CLI försöker identifiera den här egenskapen om det här argumentet inte har angetts av användaren.

Tågtid

--train-time (sträng)

Som standard är den maximala utforsknings-/tågtiden 30 minuter.

Det här argumentet anger den maximala tiden (i sekunder) för processen för att utforska flera utbildare och konfigurationer. Den konfigurerade tiden kan överskridas om den angivna tiden är för kort (t.ex. 2 sekunder) för en enskild iteration. I det här fallet är den faktiska tiden den tid som krävs för att skapa en modellkonfiguration i en enda iteration.

Den tid som behövs för iterationer kan variera beroende på datamängdens storlek.

Cache

--cache (sträng)

Om du använder cachelagring läses hela träningsdatauppsättningen in i minnet.

För små och medelstora datauppsättningar kan användningen av cachen drastiskt förbättra träningsprestandan, vilket innebär att träningstiden kan vara kortare än när du inte använder cacheminnet.

Men för stora datauppsättningar kan inläsning av alla data i minnet påverka negativt eftersom du kan få slut på minne. När du tränar med stora datamängdsfiler och inte använder cache, kommer ML.NET att strömma datasegment från enheten när de behöver läsa in mer data under träningen.

Du kan ange följande värden:

on: Tvingar cacheminne som ska användas vid träning. off: Tvingar cacheminnet att inte användas vid träning. auto: Beroende på AutoML-heuristik används cacheminnet eller inte. Vanligtvis använder små/medelstora datauppsättningar cacheminnen och stora datauppsättningar använder inte cacheminnet om du använder valet auto .

Om du inte anger parametern --cache används cachekonfigurationen auto som standard.

Name

--name (sträng)

Namnet på det skapade utdataprojektet eller lösningen. Om inget namn anges används namnet sample-{mltask} .

Den ML.NET modellfilen (.ZIP fil) får också samma namn.

Utmatningssökväg

--output | -o (sträng)

Rotplats/mapp för att placera de genererade utdata. Standardvärdet är den aktuella katalogen.

Utförlighet

--verbosity | -v (sträng)

Anger verbositetsnivån för standardutdata.

Tillåtna värden är:

  • q[uiet]
  • m[inimal] (som standard)
  • diag[nostic] (loggningsinformationsnivå)

Som standard bör CLI-verktyget visa minsta möjliga feedback (minimal) när du arbetar, till exempel att nämna att det fungerar och om möjligt hur mycket tid som återstår eller vilken % av tiden som har slutförts.

Help

-h |--help

Skriver ut hjälpen för kommandot med en beskrivning för varje kommandos parameter.

Se även