Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De classificationopdrachten , regressionen recommendation opdrachten zijn de belangrijkste opdrachten die worden geleverd door het ML.NET CLI-hulpprogramma. Met deze opdrachten kunt u ML.NET modellen van goede kwaliteit genereren voor classificatie-, regressie- en aanbevelingsmodellen met behulp van geautomatiseerde machine learning (AutoML) en de C#-voorbeeldcode om dat model uit te voeren/te scoren. Daarnaast wordt de C#-code voor het trainen van het model gegenereerd om het algoritme en de instellingen van het model te onderzoeken.
Opmerking
Dit artikel verwijst naar ML.NET CLI en ML.NET AutoML, die momenteel in preview zijn en materiaal onderhevig is aan wijzigingen.
Overzicht
Voorbeeldgebruik:
mlnet regression --dataset "cars.csv" --label-col price
Met de mlnet ML-taakopdrachten (classification, regression, recommendationen forecasting) worden de volgende assets gegenereerd:
- Een geserialiseerd model .zip ("beste model") klaar voor gebruik.
- C#-code voor het uitvoeren/scoren van het gegenereerde model.
- C#-code met de trainingscode die wordt gebruikt om dat model te genereren.
De eerste twee assets kunnen rechtstreeks worden gebruikt in uw eindgebruikers-apps (ASP.NET Core-web-app, services, desktop-app en meer) om voorspellingen te doen met het model.
De derde asset, de trainingscode, laat zien wat ML.NET API-code is gebruikt door de CLI om het gegenereerde model te trainen, zodat u het specifieke algoritme en de instellingen van het model kunt onderzoeken.
Voorbeelden
De eenvoudigste CLI-opdracht voor een classificatieprobleem (Met AutoML wordt de meeste configuratie afgeleid van de opgegeven gegevens):
mlnet classification --dataset "customer-feedback.tsv" --label-col Sentiment
Een andere eenvoudige CLI-opdracht voor een regressieprobleem:
mlnet regression --dataset "cars.csv" --label-col Price
Maak en train een classificatiemodel met een traingegevensset, een testgegevensset en verdere aanpassing van expliciete argumenten:
mlnet classification --dataset "/MyDataSets/Population-Training.csv" --test-dataset "/MyDataSets/Population-Test.csv" --label-col "InsuranceRisk" --cache on --train-time 600
Opdrachtopties
Met de mlnet ML-taakopdrachten (classification, regression, recommendation, forecastingen train) worden meerdere modellen getraind op basis van de opgegeven gegevensset en ML.NET CLI-opties. Deze opdrachten selecteren ook het beste model, slaan het model op als een geserialiseerd .zip-bestand en genereren gerelateerde C#-code voor scoren en training.
Classificatieopties
Het uitvoeren van mlnet classification zal een classificatiemodel trainen. Kies deze opdracht als u wilt dat een ML-model gegevens in twee of meer klassen categoriseert (bijvoorbeeld sentimentanalyse).
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
Regressieopties
Het uitvoeren van mlnet regression zal een regressiemodel trainen. Kies deze opdracht als u wilt dat een ML-model een numerieke waarde voorspelt (bijvoorbeeld prijsvoorspelling).
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
Aanbevelingsopties
Het uitvoeren van mlnet recommendation traint een aanbevelingsmodel. Kies deze opdracht als u wilt dat een ML-model items aan gebruikers aanbeveelt op basis van beoordelingen (bijvoorbeeld productaanbeveling).
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
Ongeldige invoeropties zorgen ervoor dat het CLI-hulpprogramma een lijst met geldige invoer en een foutbericht verzendt.
Opties voor prognose
Door mlnet forecasting uit te voeren, wordt er een model voor tijdreeksprognoses getraind. Kies deze opdracht als u wilt dat een ML-model een waarde voorspelt op basis van historische gegevens (bijvoorbeeld verkoopprognoses).
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>
Opties voor trainen
Het uitvoeren van mlnet train traint een model op basis van een "mbconfig"-bestand dat is gegenereerd door Model Builder. Deze opdracht werkt alleen als de trainingsgegevens zich in dezelfde map bevinden als het mbconfig-bestand.
-training-config <training-config> (REQUIRED)
--log-file-path <log-file-path>
-v, --verbosity <verbosity>
Gegevensset
--dataset | -d (tekenreeks)
Dit argument biedt het bestandspad aan een van de volgende opties:
A: Het hele gegevenssetbestand: Als u deze optie gebruikt en de gebruiker
--test-dataseten--validation-datasetniet opgeeft, worden intern kruisvalidatiemethoden (k-fold, enzovoort) of geautomatiseerde gegevenssplitstechnieken gebruikt voor het valideren van het model. In dat geval hoeft de gebruiker alleen het bestandspad van de gegevensset op te geven.B: Het bestand met de trainingsgegevensset: Als de gebruiker ook gegevenssets levert voor modelvalidatie (met
--test-dataseten optioneel--validation-dataset), betekent het--datasetargument dat alleen de 'trainingsgegevensset' moet worden gebruikt. Wanneer u bijvoorbeeld een benadering van 80% - 20% gebruikt om de kwaliteit van het model te valideren en metrische gegevens over nauwkeurigheid te verkrijgen, heeft de 'trainingsgegevensset' 80% van de gegevens en heeft de 'testgegevensset' 20% van de gegevens.
Gegevensset testen
--test-dataset | -t (tekenreeks)
Bestandspad dat verwijst naar het bestand met de testgegevensset, bijvoorbeeld bij het gebruik van een 80% - 20% benadering bij het maken van regelmatige validaties om metrische gegevens over nauwkeurigheid te verkrijgen.
Als u --test-dataset gebruikt, dan is --dataset ook vereist.
Het --test-dataset argument is optioneel, tenzij de --validation-dataset wordt gebruikt. In dat geval moet de gebruiker de drie argumenten gebruiken.
Validatiegegevensset
--validation-dataset | -v (tekenreeks)
Bestandspad dat verwijst naar het validatiegegevenssetbestand. De validatiegegevensset is in elk geval optioneel.
Als u een validation dataset gebruikt, moet het gedrag zijn:
De
test-datasetargumenten en--datasetargumenten zijn ook vereist.De
validation-datasetgegevensset wordt gebruikt om de voorspellingsfout voor modelselectie te schatten.Deze
test-datasetwordt gebruikt voor de evaluatie van de generalisatiefout van het uiteindelijke gekozen model. In het ideale geval moet de testset in een 'kluis' worden bewaard en alleen aan het einde van de gegevensanalyse worden opgehaald.
In principe wordt bij het gebruik van een validation dataset plus de test datasetvalidatiefase gesplitst in twee delen:
- In het eerste deel kijkt u gewoon naar uw modellen en selecteert u de best presterende benadering met behulp van de validatiegegevens (=validatie)
- Vervolgens schat u de nauwkeurigheid van de geselecteerde benadering (=test).
Daarom kan de scheiding van gegevens 80/10/10 of 75/15/10 zijn. Voorbeeld:
-
training-datasethet bestand moet 75% van de gegevens bevatten. -
validation-datasethet bestand moet 15% van de gegevens bevatten. -
test-datasethet bestand moet 10% van de gegevens bevatten.
In elk geval worden deze percentages bepaald door de gebruiker die de CLI gebruikt en de bestanden reeds gesplitst aanbiedt.
Etiketkolom
--label-col (int of tekenreeks)
Met dit argument kan een specifieke doel-/doelkolom (de variabele die u wilt voorspellen) worden opgegeven met behulp van de naam van de kolom die is ingesteld in de koptekst van de gegevensset of de numerieke index van de kolom in het bestand van de gegevensset (de kolomindexwaarden beginnen bij 0).
Dit argument wordt gebruikt voor classificatie - en regressieproblemen .
Itemkolom
--item-col (int of tekenreeks)
De itemkolom bevat de lijst met items die gebruikers beoordelen (items worden aanbevolen voor gebruikers). Deze kolom kan worden opgegeven met behulp van de naam van de kolom die is ingesteld in de koptekst van de gegevensset of de numerieke index van de kolom in het bestand van de gegevensset (de kolomindexwaarden beginnen bij 0).
Dit argument wordt alleen gebruikt voor de aanbevelingstaak .
Classificatiekolom
--rating-col (int of tekenreeks)
De classificatiekolom bevat de lijst met classificaties die worden gegeven aan items door gebruikers. Deze kolom kan worden opgegeven met behulp van de naam van de kolom die is ingesteld in de koptekst van de gegevensset of de numerieke index van de kolom in het bestand van de gegevensset (de kolomindexwaarden beginnen bij 0).
Dit argument wordt alleen gebruikt voor de aanbevelingstaak .
Gebruikerskolom
--user-col (int of tekenreeks)
De gebruikerskolom bevat de lijst met gebruikers die classificaties geven aan items. Deze kolom kan worden opgegeven met behulp van de naam van de kolom die is ingesteld in de koptekst van de gegevensset of de numerieke index van de kolom in het bestand van de gegevensset (de kolomindexwaarden beginnen bij 0).
Dit argument wordt alleen gebruikt voor de aanbevelingstaak .
Kolommen negeren
--ignore-columns (tekenreeks)
Met dit argument kunt u bestaande kolommen in het gegevenssetbestand negeren, zodat ze niet worden geladen en gebruikt door de trainingsprocessen.
Geef de kolomnamen op die u wilt negeren. Gebruik ', ' (komma met spatie) of ' (spatie) om meerdere kolomnamen te scheiden. U kunt aanhalingstekens gebruiken voor kolomnamen met witruimte (bijvoorbeeld 'aangemeld').
Voorbeeld:
--ignore-columns email, address, id, logged_in
Heeft koptekst
--has-header (bool)
Geef op of de datasetbestanden een koptitelrij hebben. Mogelijke waarden zijn:
truefalse
De ML.NET CLI probeert deze eigenschap te detecteren als dit argument niet is opgegeven door de gebruiker.
Trainingstijd
--train-time (tekenreeks)
Standaard is de maximale verkennings- of treintijd 30 minuten.
Met dit argument wordt de maximale tijd (in seconden) voor het proces ingesteld om meerdere trainers en configuraties te verkennen. De geconfigureerde tijdslimiet kan worden overschreden als deze te kort is (bijvoorbeeld 2 seconden) voor één iteratie. In dit geval is de werkelijke tijd de vereiste tijd om één modelconfiguratie in één iteratie te produceren.
De tijd die nodig is voor iteraties kan variëren, afhankelijk van de grootte van de gegevensset.
cache
--cache (tekenreeks)
Als u caching gebruikt, wordt de hele trainingsgegevensset in het geheugen geladen.
Voor kleine en middelgrote gegevenssets kan het gebruik van cache de trainingsprestaties drastisch verbeteren, wat betekent dat de trainingstijd korter kan zijn dan wanneer u geen cache gebruikt.
Voor grote gegevenssets kan het laden van alle gegevens in het geheugen echter een negatieve invloed hebben omdat u mogelijk uit het geheugen komt. Wanneer u traint met grote gegevenssetbestanden en geen cache gebruikt, zal ML.NET segmenten van gegevens van de schijf streamen wanneer er tijdens de training meer gegevens moeten worden geladen.
U kunt de volgende waarden opgeven:
on: Dwingt cache te gebruiken tijdens de training.
off: Dwingt cache niet te gebruiken tijdens de training.
auto: Afhankelijk van de AutoML-heuristiek wordt de cache gebruikt of niet. Normaal gesproken gebruiken kleine/middelgrote gegevenssets cache en grote gegevenssets geen cache als u de auto keuze gebruikt.
Als u de --cache parameter niet opgeeft, wordt de cacheconfiguratie auto standaard gebruikt.
Naam
--name (tekenreeks)
De naam voor het gemaakte uitvoerproject of de gemaakte oplossing. Als er geen naam is opgegeven, wordt de naam sample-{mltask} gebruikt.
Het ML.NET modelbestand (.ZIP bestand) krijgt ook dezelfde naam.
Uitvoerpad
--output | -o (tekenreeks)
Hoofdlocatie/map om de gegenereerde uitvoer te plaatsen. De standaardwaarde is de huidige map.
Uitgebreidheid
--verbosity | -v (tekenreeks)
Stelt het verbaalheidsniveau van de standaarduitvoer in.
Toegestane waarden zijn:
q[uiet]-
m[inimal](standaard) -
diag[nostic](informatieniveau voor logboekregistratie)
Standaard moet het CLI-hulpprogramma een aantal minimale feedback (minimal) weergeven bij het werken, zoals vermelden dat het werkt en indien mogelijk hoeveel tijd er nog is of welke % van de tijd is voltooid.
Hulp
-h |--help
Hiermee wordt help voor de opdracht afgedrukt met een beschrijving voor de parameter van elke opdracht.