Befehlsreferenz für die ML.NET-CLI

Die Befehle classification, regression und recommendation sind die Hauptbefehle, die vom ML.NET-CLI-Tool bereitgestellt werden. Mit diesen Befehlen können Sie ein qualitativ hochwertiges ML.NET-Modell für Klassifizierungs-, Regressions- und Empfehlungsmodelle mithilfe von automatisiertem maschinellen Lernen (AutoML) sowie den C#-Beispielcode generieren, um dieses Modell auszuführen bzw. zu bewerten. Außerdem wird der C#-Code zum Trainieren des Modells für Sie generiert, damit Sie den Algorithmus und die Einstellungen des Modells untersuchen können.

Hinweis

Dieser Artikel bezieht sich auf die ML.NET-CLI und ML.NET AutoML, die derzeit als Vorschauversion verfügbar sind. Änderungen sind vorbehalten.

Übersicht

Verwendungsbeispiel:

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

Die mlnet-ML-Aufgabenbefehle (classification, regression, recommendation und forecasting) generieren die folgenden Objekte:

  • Eine serialisierte ZIP-Datei des Modells („bestes Modell“), die sofort verwendet werden kann.
  • C#-Code zum Ausführen/Bewerten des generierten Modells.
  • C#-Code mit dem Trainingscode, der zur Erstellung dieses Modells verwendet wird.

Die ersten beiden Objekte können direkt in Ihren Endbenutzer-App (ASP.NET Core-Web-App, Dienste, Desktop-App usw.) verwendet werden, um mit dem Modell Vorhersagen zu treffen.

Das dritte Objekt, der Trainingscode, zeigt Ihnen, welchen ML.NET-API-Code die CLI zum Trainieren des generierten Modells verwendet hat, sodass Sie den spezifischen Algorithmus und die Einstellungen des Modells untersuchen können.

Beispiele

Der einfachste CLI-Befehl für ein Klassifizierungsproblem (AutoML leitet den Großteil der Konfiguration 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 Sie ein Klassifizierungsmodell mit einem Trainingsdataset, einem Testdataset 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, recommendation, forecasting und train) trainieren mehrere Modelle basierend auf dem bereitgestellten Dataset und den bereitgestellten ML.NET-CLI-Optionen. Diese Befehle wählen außerdem das beste Modell aus, speichern das Modell als serialisierte ZIP-Datei und generieren zugehörigen C#-Code für die Bewertung und das Training.

Klassifizierungsoptionen

Durch das Ausführen von mlnet classification wird ein Klassifizierungsmodell trainiert. Wählen Sie diesen Befehl aus, wenn Sie möchten, dass ein ML-Modell Daten in mindestens zwei Klassen kategorisiert (z. B. bei der Standpunktanalyse).

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

Durch das Ausführen von mlnet regression wird ein Regressionsmodell trainiert. Wählen Sie diesen Befehl aus, wenn Sie möchten, dass ein ML-Modell einen numerischen Wert vorhersagt (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 Sie möchten, dass ein ML-Modell Benutzern Artikel auf der Grundlage von Bewertungen (z. B. Produktempfehlungen) empfiehlt.

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 bewirken, dass das CLI-Tool eine Liste gültiger Eingaben und eine Fehlermeldung ausgibt.

Vorhersageoptionen

Durch Ausführen von mlnet forecasting wird ein Modell zur Vorhersage von Zeitreihen trainiert. Wählen Sie diesen Befehl aus, wenn ein ML-Modell einen Wert basierend auf Verlaufsdaten vorhersagen soll (z. B. eine Umsatzprognose).

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>

Trainingsoptionen

Durch Ausführen von mlnet train wird ein Modell basierend auf einer vom Model Builder generierten mbconfig-Datei trainiert. Damit dieser Befehl funktioniert, müssen sich die Trainingsdaten im selben Verzeichnis wie die Datei „mbconfig“ befinden.

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

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

-v, --verbosity <verbosity>

DataSet

--dataset | -d (Zeichenfolge)

Dieses Argument stellt den Dateipfad zu einer der folgenden Optionen bereit:

  • A: Die gesamte Datasetdatei: Wenn Sie diese Option verwenden und der Benutzer das --test-dataset und das --validation-dataset nicht bereitstellt, werden intern Kreuzvalidierungen (k-fach, etc.) oder automatisierte Verfahren zur Aufteilung das Daten für die Validierung des Modells verwendet. In diesem Fall muss der Benutzer nur den Dateipfad zum Dataset angeben.

  • B: Die Datei für das Trainingsdataset: Wenn der Benutzer auch Datasets für die Modellvalidierung bereitstellt (mit --test-dataset und optional --validation-dataset), dann bedeutet das Argument --dataset, dass nur das „Trainingsdataset“ vorhanden ist. Wenn Sie beispielsweise 80%-20%ig-Ansatz zur Validierung der Modellqualität und zum Ermitteln von Genauigkeitsmetriken verwenden, enthält das „Trainingsdataset“ 80 % der Daten und das „Testdataset“ 20 % der Daten.

Testdataset

--test-dataset | -t (Zeichenfolge)

Dateipfad, der auf die Datei des Testdatasets zeigt, z.B. bei Verwendung eines 80%-20%-Ansatzes bei regelmäßigen Validierungen zur Ermittlung von Genauigkeitsmetriken.

Bei der Verwendung des --test-dataset ist auch das --dataset erforderlich.

Das --test-dataset-Argument ist optional, sofern das „--validation-dataset“ verwendet wird. In diesem Fall muss der Benutzer die drei Argumente verwenden.

Validierungsdataset

--validation-dataset | -v (Zeichenfolge)

Dateipfad, der auf die Datei für das Validierungsdataset zeigt. Das Validierungsdataset ist in jedem Fall optional.

Bei der Verwendung des validation dataset sollte folgendes Verhalten auftreten:

  • Es sind auch die test-dataset- und --dataset-Argumente erforderlich.

  • Das validation-dataset-Dataset wird verwendet, um den Vorhersagefehler für die Modellauswahl zu schätzen.

  • Das test-dataset wird zur Beurteilung des Generalisierungsfehlers des endgültig ausgewählten Modells verwendet. Idealerweise sollte das Testset in einem „Tresor“ aufbewahrt werden und erst am Ende der Datenanalyse zur Anwendung kommen.

Grundsätzlich wird bei die Validierungsphase bei Verwendung eines validation dataset plus des test dataset in zwei Teile aufgeteilt:

  1. Im ersten Teil betrachten Sie einfach Ihre Modelle und wählen den leistungsstärksten Ansatz anhand der Validierungsdaten (=Validierung) aus.
  2. Dann schätzen Sie die Genauigkeit des gewählten Ansatzes (=Test).

Daher sollten die Daten im Verhältnis 80/10/10 oder 75/15/10 geteilt werden. Zum Beispiel:

  • Die Datei training-dataset sollte 75 % der Daten enthalten.
  • Die Datei validation-dataset sollte 15 % der Daten enthalten.
  • Die Datei test-dataset sollte 10 % der Daten enthalten.

In jedem Fall entscheidet der Benutzer anhand der CLI, die die bereits aufgeteilten Dateien bereitstellt, über die Prozentangaben.

Bezeichnungsspalte

--label-col (ganze Zahl oder Zeichenfolge)

Mit diesem Argument kann eine bestimmte Zielspalte (die Variable, die Sie vorhersagen möchten) angegeben werden, indem Sie den im Header des Dataset festgelegten Namen der Spalte oder den numerischen Index der Spalte in der Datasetdatei (Spaltenindexwerte beginnen bei 0) verwenden.

Dieses Argument wird für Probleme bei der Klassifizierung und der Regression verwendet.

Artikelspalte

--item-col (ganze Zahl oder Zeichenfolge)

Die Artikelspalte enthält die Liste der Artikel, die von Benutzern bewertet werden (Artikel werden Benutzern empfohlen). Diese Spalte kann angegeben werden, indem Sie den im Header des Dataset festgelegten Namen der Spalte oder den numerischen Index der Spalte in der Datasetdatei (Spaltenindexwerte beginnen bei 0) verwenden.

Dieses Argument wird nur für den Empfehlungstask verwendet.

Bewertungsspalte

--rating-col (ganze Zahl oder Zeichenfolge)

Die Bewertungsspalte enthält die Liste der Bewertungen, die Benutzer für Artikel abgeben. Diese Spalte kann angegeben werden, indem Sie den im Header des Dataset festgelegten Namen der Spalte oder den numerischen Index der Spalte in der Datasetdatei (Spaltenindexwerte beginnen bei 0) verwenden.

Dieses Argument wird nur für den Empfehlungstask verwendet.

Benutzerspalte

--user-col (ganze Zahl oder Zeichenfolge)

Die Benutzerspalte enthält die Liste der Benutzer, die Bewertungen für Artikel abgeben. Diese Spalte kann angegeben werden, indem Sie den im Header des Dataset festgelegten Namen der Spalte oder den numerischen Index der Spalte in der Datasetdatei (Spaltenindexwerte beginnen bei 0) verwenden.

Dieses Argument wird nur für den Empfehlungstask verwendet.

Spalten ignorieren

--ignore-columns (Zeichenfolge)

Mit diesem Argument können Sie vorhandene Spalten in der Datasetdatei ignorieren, sodass sie nicht geladen und nicht in den Trainingsprozessen verwendet werden.

Geben Sie die Namen der Spalten 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. „ist angemeldet“).

Beispiel:

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

Hat Header

--has-header (Bool)

Geben Sie an, ob die Datasetdatei(en) eine Kopfzeile enthält/enthalten. Dabei sind folgende Werte möglich:

  • true
  • false

Die ML.NET-CLI versucht, diese Eigenschaft zu erkennen, wenn dieses Argument vom Benutzer nicht angegeben wird.

Trainingszeit

--train-time (Zeichenfolge)

Die maximale Untersuchungs-/Trainingszeit beträgt standardmäßig 30 Minuten.

Dieses Argument legt die maximale Zeit (in Sekunden) für den Prozess fest, um mehrere Trainer und Konfigurationen zu untersuchen. Die konfigurierte Zeit kann überschritten werden, wenn die angegebene Zeit 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 erstellen.

Die für Iterationen benötigte Zeit kann je nach Größe des Datasets variieren.

cache

--cache (Zeichenfolge)

Wenn Sie Caching verwenden, wird das gesamte Trainingsdataset im Speicher geladen.

Bei kleinen und mittleren Datasets kann Caching die Trainingsleistung erheblich verbessern, sodass die Trainingszeit im Vergleich zu einem Training ohne Cache kürzer sein kann.

Bei großen Datasets kann das Laden aller Daten im Speicher jedoch negative Auswirkungen haben, da Sie unter Umständen nicht mehr genügend Speicher zur Verfügung haben. Wenn Sie für das Training mit großen Datasetdateien arbeiten und keinen Cache verwenden, streamt ML.NET Datenblöcke vom Laufwerk, wenn während des Trainings mehr Daten geladen werden müssen.

Sie können folgende Werte angeben:

on: Erzwingt, dass während des Trainings der Cache verwendet wird off: Erzwingt, dass während des Trainings der Cache nicht verwendet wird auto: Je nach AutoML-Heuristiken wird der Cache verwendet oder nicht verwendet. In der Regel verwenden kleine/mittlere Datasets den Cache, und große Datasets verwenden keinen Cache, wenn Sie die Option auto verwenden.

Wenn Sie den --cache-Parameter nicht angeben, wird standardmäßig die Cachekonfiguration auto verwendet.

name

--name (Zeichenfolge)

Der Name für das erstellte Ausgabeprojekt oder die erstellte Projektmappe. Wenn kein Name angegeben ist, wird der Name sample-{mltask} verwendet.

Die ML.NET-Modelldatei (ZIP-Datei) erhält ebenfalls denselben Namen.

Ausgabepfad

--output | -o (Zeichenfolge)

Stammspeicherort/-ordner für die generierte Ausgabe. Der Standardwert ist das aktuelle Verzeichnis.

Ausführlichkeit

--verbosity | -v (Zeichenfolge)

Legt den Ausführlichkeitsgrad für die Standardausgabe fest.

Zulässige Werte sind:

  • q[uiet]
  • m[inimal] (Standardwert)
  • diag[nostic] (Protokollierung der Informationsebene)

Standardmäßig sollte das CLI-Tool, wenn es funktioniert, ein Mindestfeedback (minimal) anzeigen, z. B. dass es funktioniert und, wenn möglich, wie viel Zeit übrig ist oder wie viel Prozent der Zeit abgeschlossen sind.

Hilfe

-h |--help

Druckt die Hilfe für den Befehl und eine Beschreibung der einzelnen Parameter für den Befehl aus.

Siehe auch