Kommandoreferensen för ML.NET CLI
Kommandona classification
, regression
och 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
, recommendation
och 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
, , regression
recommendation
, forecasting
och 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-dataset
må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 dataset
bö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 dataset
test dataset
- delas valideringsfasen i två delar:
- 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)
- 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.