Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Befehle classification, regression und recommendation sind die Hauptbefehle, die vom ML.NET CLI-Tool bereitgestellt werden. Mit diesen Befehlen können Sie gute Qualität ML.NET Modelle für Klassifizierungs-, Regressions- und Empfehlungsmodelle mit automatisiertem Maschinellem Lernen (AutoML) sowie dem C#-Beispielcode generieren, um dieses Modell auszuführen/zu scoren. Darüber hinaus wird der C#-Code zum Trainieren des Modells generiert, um den Algorithmus und die Einstellungen des Modells zu recherchieren.
Hinweis
Dieser Artikel bezieht sich auf ML.NET CLI und ML.NET AutoML, die sich derzeit in der Vorschau befinden, und Material kann geändert werden.
Überblick
Beispielverwendung:
mlnet regression --dataset "cars.csv" --label-col price
Die mlnet ML-Aufgabenbefehle (classification, regression, recommendationund forecasting) generieren die folgenden Ressourcen:
- Ein serialisiertes Modell .zip ("bestes Modell") einsatzbereit.
- C#-Code zum Ausführen/Bewerten des generierten Modells.
- C#-Code mit dem Schulungscode, der zum Generieren dieses Modells verwendet wird.
Die ersten beiden Ressourcen können direkt in Ihren Endbenutzer-Apps (ASP.NET Core Web App, Dienste, Desktop-App und mehr) verwendet werden, um Vorhersagen mit dem Modell zu erstellen.
Die dritte Ressource, der Schulungscode, zeigt Ihnen, welche ML.NET API-Code von der CLI zum Trainieren des generierten Modells verwendet wurde, damit Sie den spezifischen Algorithmus und die Einstellungen des Modells untersuchen können.
Beispiele
Der einfachste CLI-Befehl für ein Klassifizierungsproblem (AutoML leitet die meisten Konfigurationen aus den bereitgestellten Daten ab):
mlnet classification --dataset "customer-feedback.tsv" --label-col Sentiment
Ein weiterer einfacher CLI-Befehl für ein Regressionsproblem:
mlnet regression --dataset "cars.csv" --label-col Price
Erstellen und Trainieren eines Klassifizierungsmodells mit einem Train-Dataset, einem Test-Dataset und weiteren expliziten Anpassungsargumenten:
mlnet classification --dataset "/MyDataSets/Population-Training.csv" --test-dataset "/MyDataSets/Population-Test.csv" --label-col "InsuranceRisk" --cache on --train-time 600
Befehlsoptionen
Die mlnet ML-Aufgabenbefehle (classification, regression, , recommendationforecastingund train) trainieren mehrere Modelle basierend auf dem bereitgestellten Dataset und ML.NET CLI-Optionen. Diese Befehle wählen auch das beste Modell aus, speichern das Modell als serialisierte .zip Datei und generieren verwandten C#-Code für die Bewertung und Schulung.
Klassifizierungsoptionen
Beim Ausführen mlnet classification wird ein Klassifizierungsmodell trainiert. Wählen Sie diesen Befehl aus, wenn ein ML-Modell Daten in 2 oder mehr Klassen kategorisieren soll (z. B. Stimmungsanalyse).
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
Regressionsoptionen
Beim Ausführen mlnet regression wird ein Regressionsmodell trainiert. Wählen Sie diesen Befehl aus, wenn ein ML-Modell einen numerischen Wert vorhersagen soll (z. B. Preisvorhersage).
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
Empfehlungsoptionen
Durch das Ausführen von mlnet recommendation wird ein Empfehlungsmodell trainiert. Wählen Sie diesen Befehl aus, wenn ein ML-Modell Basierend auf Bewertungen Elemente für Benutzer empfehlen soll (z. B. Produktempfehlung).
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
Ungültige Eingabeoptionen führen dazu, dass das CLI-Tool eine Liste gültiger Eingaben und eine Fehlermeldung ausgibt.
Prognoseoptionen
Durch Ausführen von mlnet forecasting wird ein Zeitreihen-Prognosemodell trainiert. Wählen Sie diesen Befehl aus, wenn ein ML-Modell einen Wert basierend auf historischen Daten prognostizieren soll (z. B. Verkaufsprognose).
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>
Zugoptionen
Beim Ausführen mlnet train wird ein Modell basierend auf einer vom Modell-Generator generierten "mbconfig"-Datei trainiert. Damit dieser Befehl funktioniert, müssen sich die Schulungsdaten im selben Verzeichnis wie die Datei "mbconfig" befinden.
-training-config <training-config> (REQUIRED)
--log-file-path <log-file-path>
-v, --verbosity <verbosity>
Datensatz
--dataset | -d (Zeichenfolge)
Dieses Argument stellt den Dateipfad für eine der folgenden Optionen bereit:
A: Die gesamte Datensatzdatei: Wenn diese Option verwendet wird und der Benutzer
--test-datasetund--validation-datasetnicht bereitstellt, werden Kreuzvalidierung (k-fold usw.) oder automatisierte Datenaufteilungsansätze intern zur Validierung des Modells verwendet. In diesem Fall muss der Benutzer nur den Datasetdateipfad bereitstellen.B: Die Schulungsdatensatzdatei: Wenn der Benutzer auch Datasets für die Modellüberprüfung (mit
--test-datasetund optional--validation-dataset) bereitstellt, bedeutet das--datasetArgument, dass nur das "Schulungs-Dataset" vorhanden ist. Wenn Sie beispielsweise einen Ansatz von 80% - 20% verwenden, um die Qualität des Modells zu überprüfen und Genauigkeitsmetriken zu erhalten, verfügt das "Schulungsdatenset" über 80% der Daten und das "Test-Dataset" hätte 20% der Daten.
Testdataset
--test-dataset | -t (Zeichenfolge)
Dateipfad, der auf die Testdatei verweist, z. B. bei Verwendung eines 80-% - 20-%-Ansatzes bei regelmäßigen Überprüfungen, um Genauigkeitsmetriken zu erhalten.
Wenn --test-dataset verwendet wird, ist auch --dataset erforderlich.
Das --test-dataset Argument ist optional, außer das Argument --validation-dataset wird verwendet. In diesem Fall muss der Benutzer die drei Argumente verwenden.
Validierungsdataset
--validation-dataset | -v (Zeichenfolge)
Dateipfad, der auf die Validierungsdatensetdatei zeigt. Das Validierungsdatenset ist in jedem Fall optional.
Bei Verwendung eines validation dataset, sollte das Verhalten folgendes sein:
Die Argumente
test-datasetund--datasetsind ebenfalls erforderlich.Das
validation-datasetDataset wird verwendet, um den Vorhersagefehler für die Modellauswahl zu schätzen.Dies
test-datasetwird zur Bewertung des Generalisierungsfehlers des endgültig ausgewählten Modells verwendet. Im Idealfall sollte der Testsatz in einem "Tresor" gehalten werden und erst am Ende der Datenanalyse herausgebracht werden.
Im Grunde genommen wird bei der Verwendung eines validation dataset zusammen mit dem test dataset die Validierungsphase in zwei Teile geteilt:
- Im ersten Teil betrachten Sie einfach Ihre Modelle und wählen den leistungsstärksten Ansatz mithilfe der Validierungsdaten (=Validierung) aus.
- Anschließend schätzen Sie die Genauigkeit des ausgewählten Ansatzes (=Test).
Daher könnte die Trennung der Daten 80/10/10 oder 75/15/10 sein. Beispiel:
-
training-datasetDie Datei sollte 75% der Daten enthalten. -
validation-datasetDie Datei sollte 15% der Daten enthalten. -
test-datasetDie Datei sollte 10% der Daten enthalten.
In jedem Fall werden diese Prozentsätze vom Benutzer mit der CLI entschieden, der die Dateien bereitstellt, die bereits geteilt wurden.
Beschriftungsspalte
--label-col (int oder string)
Mit diesem Argument kann eine bestimmte Zielspalte (die Variable, die Sie vorhersagen möchten) mithilfe des Namens im Header des Datasets oder des numerischen Indexes der Spalte in der Datensatzdatei angegeben werden (die Spaltenindexwerte beginnen bei 0).
Dieses Argument wird für Klassifizierungs- und Regressionsprobleme verwendet.
Artikelliste
--item-col (int oder string)
Die Elementspalte enthält die Liste der Elemente, die Benutzer bewerten (Elemente werden benutzern empfohlen). Diese Spalte kann mithilfe des Spaltennamens angegeben werden, der in der Kopfzeile des Datasets oder im numerischen Index der Spalte in der Datasetdatei festgelegt ist (die Spaltenindexwerte beginnen bei 0).
Dieses Argument wird nur für den Empfehlungsvorgang verwendet.
Bewertungsspalte
--rating-col (int oder string)
Die Bewertungsspalte enthält die Liste der Bewertungen, die von Benutzern den Elementen zugewiesen werden. Diese Spalte kann mithilfe des Spaltennamens angegeben werden, der in der Kopfzeile des Datasets oder im numerischen Index der Spalte in der Datasetdatei festgelegt ist (die Spaltenindexwerte beginnen bei 0).
Dieses Argument wird nur für den Empfehlungsvorgang verwendet.
Benutzerspalte
--user-col (int oder string)
Die Benutzerspalte enthält die Liste der Benutzer, die Den Elementen Bewertungen zuweisen. Diese Spalte kann mithilfe des Spaltennamens angegeben werden, der in der Kopfzeile des Datasets oder im numerischen Index der Spalte in der Datasetdatei festgelegt ist (die Spaltenindexwerte beginnen bei 0).
Dieses Argument wird nur für den Empfehlungsvorgang verwendet.
Spalten ignorieren
--ignore-columns (Zeichenfolge)
Mit diesem Argument können Sie vorhandene Spalten in der Datasetdatei ignorieren, sodass sie nicht geladen und von den Schulungsprozessen verwendet werden.
Geben Sie die Spaltennamen an, die Sie ignorieren möchten. Verwenden Sie ', ' (Komma mit Leerzeichen) oder ' (Leerzeichen), um mehrere Spaltennamen zu trennen. Sie können Anführungszeichen für Spaltennamen verwenden, die Leerzeichen enthalten (z. B. "angemeldet").
Beispiel:
--ignore-columns email, address, id, logged_in
Hat Kopfzeile
--has-header (bool)
Geben Sie an, ob die Datasetdatei(n) eine Kopfzeile aufweist. Mögliche Werte:
truefalse
Die ML.NET CLI versucht, diese Eigenschaft zu erkennen, wenn dieses Argument nicht vom Benutzer angegeben wird.
Zugzeit
--train-time (Zeichenfolge)
Standardmäßig beträgt die maximale Erkundungs- oder Zugzeit 30 Minuten.
Dieses Argument legt die maximale Zeit (in Sekunden) für den Prozess fest, um mehrere Trainer und Konfigurationen zu untersuchen. Das konfigurierte Zeitlimit kann überschritten werden, wenn es für eine einzelne Iteration zu kurz ist (z. B. 2 Sekunden). In diesem Fall ist die tatsächliche Zeit die erforderliche Zeit, um eine Modellkonfiguration in einer einzigen Iteration zu erzeugen.
Die für Iterationen erforderliche Zeit kann je nach Größe des Datasets variieren.
Zwischenspeicher
--cache (Zeichenfolge)
Wenn Sie zwischenspeichern, wird das gesamte Schulungsdatensatz im Arbeitsspeicher geladen.
Bei kleinen und mittleren Datasets kann die Verwendung des Caches die Schulungsleistung drastisch verbessern, was bedeutet, dass die Schulungszeit kürzer sein kann als wenn Sie den Cache nicht verwenden.
Bei großen Datasets kann sich das Laden aller Daten im Arbeitsspeicher jedoch negativ auswirken, da Sie möglicherweise nicht mehr genügend Arbeitsspeicher haben. Wenn Sie eine Schulung mit großen Datasetdateien durchführen und keinen Cache verwenden, werden ML.NET Datenblöcke aus dem Laufwerk streamen, wenn während der Schulung mehr Daten geladen werden müssen.
Sie können die folgenden Werte angeben:
on: Erzwingt die Verwendung des Caches beim Training.
off: Erzwingt, dass der Cache beim Training nicht verwendet wird.
auto: Je nach AutoML-Heuristik wird der Cache verwendet oder nicht. In der Regel verwenden kleine/mittlere Datasets Cache und große Datasets verwenden keinen Cache, wenn Sie die auto Wahl verwenden.
Wenn Sie den --cache Parameter nicht angeben, wird die Cachekonfiguration auto standardmäßig verwendet.
Name
--name (Zeichenfolge)
Der Name für das erstellte Ausgabeprojekt oder die erstellte Lösung. Wenn kein Name angegeben ist, wird der Name sample-{mltask} verwendet.
Die ML.NET Modelldatei (.ZIP Datei) erhält auch denselben Namen.
Ausgabepfad
--output | -o (Zeichenfolge)
Basisverzeichnis/-ordner für die Ablage der generierten Daten. Der Standardwert ist das aktuelle Verzeichnis.
Wortfülle
--verbosity | -v (Zeichenfolge)
Legt die Ausführlichkeitsebene der Standardausgabe fest.
Zulässige Werte sind:
q[uiet]-
m[inimal](standardmäßig) -
diag[nostic](Protokollierungsinformationsebene)
Standardmäßig sollte das CLI-Tool beim Arbeiten mindestens Feedback (minimal) anzeigen, z. B. erwähnen, dass es funktioniert, und wenn möglich, wie viel Zeit übrig ist oder welche % der Zeit abgeschlossen ist.
Hilfe
-h |--help
Druckt hilfe für den Befehl mit einer Beschreibung für den Parameter jedes Befehls.