Was ist der Modell-Generator und wie funktioniert er?

Der ML.NET-Modell-Generator ist eine intuitive grafische Visual Studio-Erweiterung zum Erstellen, Trainieren und Bereitstellen von benutzerdefinierten Machine Learning-Modellen.

Der Modell-Generator verwendet automatisiertes maschinelles Lernen (AutoML), um verschiedene Machine Learning-Algorithmen und Einstellungen zu untersuchen, damit Sie die optimalen Einstellungen für Ihr Szenario ermitteln können.

Für die Verwendung des Modell-Generators sind keine Machine Learning-Kenntnisse erforderlich. Sie benötigen lediglich einige Daten und ein Problem, das Sie lösen möchten. Modell-Generator generiert den Code, um das Modell zur Ihrer .NET-Anwendung hinzuzufügen.

Model Builder scenario screen

Erstellen eines Model Builder-Projekts

Beim ersten Start von Model Builder werden Sie aufgefordert, das Projekt zu benennen. Dadurch wird eine mbconfig-Konfigurationsdatei innerhalb des Projekts erstellt.

Die mbconfig-Datei verfolgt alles, was Sie in Model Builder tun, damit Sie die Sitzung erneut öffnen können.

Nach dem Training werden drei Dateien unter der Datei „*.mbconfig“ generiert:

  • Model.consumption.cs: Diese Datei enthält die Schemas ModelInput und ModelOutput sowie die Predict-Funktion, die zur Nutzung des Modells generiert wurde.
  • Model.training.cs: Diese Datei enthält die Trainingspipeline (Datentransformationen, Algorithmus, Algorithmushyperparameter), die von Model Builder zum Trainieren des Modells ausgewählt wurde. Sie können diese Pipeline zum erneuten Trainieren Ihres Modells verwenden.
  • Model.zip: Dies ist eine serialisierte ZIP-Datei, die Ihr trainiertes ML.NET-Modell darstellt.

Wenn Sie Ihre mbconfig-Datei erstellen, werden Sie zur Eingabe eines Namens aufgefordert. Dieser Name wird auf die Verbrauchs-, Trainings- und Modelldateien angewendet. In diesem Fall lautet der verwendete Name Model.

Szenario

Sie können viele verschiedene Szenarien in den Modell-Generator einbinden, um ein Machine Learning-Modell für Ihre Anwendung zu erstellen.

Ein Szenario ist eine Beschreibung der Art der Vorhersage, die Sie mit Ihren Daten treffen möchten. Zum Beispiel:

  • Vorhersagen des zukünftigen Produktabsatzes auf der Grundlage historischer Verkaufsdaten
  • Klassifizieren der Stimmungen als positiv oder negativ anhand von Kundenrezensionen
  • Erkennen einer betrügerischen Banktransaktion
  • Weiterleiten von Problemen beim Kundenfeedback an das richtige Team in Ihrem Unternehmen

Jedes Szenario ist einer anderen Machine Learning-Aufgabe zugeordnet, darunter:

Aufgabe Szenario
Binäre Klassifizierung Datenklassifizierung
Multiklassenklassifizierung Datenklassifizierung
Bildklassifizierung Bildklassifizierung
Textklassifizierung Textklassifizierung
Regression Wertvorhersage
Empfehlung Empfehlung
Vorhersagen Vorhersagen

Beispielsweise würde das Szenario zum Klassifizieren von Stimmungen als positiv oder negativ unter die binäre Klassifizierungsaufgabe fallen.

Weitere Informationen zu den verschiedenen von ML.NET unterstützten ML-Aufgaben finden Sie unter Machine Learning-Aufgaben in ML.NET.

Welches Machine Learning-Szenario ist für mich geeignet?

Im Modell-Generator müssen Sie ein Szenario auswählen. Der Typ des Szenarios hängt davon ab, welchen Typ von Vorhersage Sie treffen möchten.

Tabellarisch

Datenklassifizierung

Die Klassifizierung dient der Unterteilung von Daten in Kategorien.

Beispieleingabe

Beispielausgabe

SepalLength SepalWidth Blütenblattlänge Blütenblattbreite Tierart
5,1 3,5 1.4 0.2 setosa
Vorhergesagte Arten
setosa
Wertvorhersage

Die Wertvorhersage, die unter die Regressionsaufgabe fällt, wird verwendet, um Zahlen vorherzusagen.

Diagram showing regression examples such as price prediction, sales forecasting, and predictive maintenance

Beispieleingabe

Beispielausgabe

vendor_id rate_code passenger_count trip_time_in_secs trip_distance payment_type fare_amount
CMT 1 1 1271 3.8 CRD 17,5
Vorhergesagter Fahrpreis
4,5

Empfehlung

Mit dem Empfehlungsszenario wird eine Liste vorgeschlagener Elemente für einen bestimmten Benutzer vorhergesagt. Die Vorhersage basiert darauf, wie stark ihre „Gefällt mir“- und „Gefällt nicht“-Angaben denen anderer Benutzer ähneln.

Sie können das Empfehlungsszenario verwenden, wenn Sie über einen Satz mit Benutzern und einen Satz mit „Produkten“ – z. B. Kaufartikel, Filme, Bücher oder TV-Sendungen – sowie über einen Satz mit Benutzerbewertungen dieser Produkte verfügen.

Beispieleingabe

Beispielausgabe

UserId ProductId Rating
1 2 4,2
Vorhergesagte Bewertung
4,5
Vorhersagen

Das Prognoseszenario verwendet Verlaufsdaten mit einer Zeitreihen- oder saisonalen Komponente.

Sie können das Prognoseszenario verwenden, um die Nachfrage oder den Verkauf eines Produkts vorherzusagen.

Beispieleingabe

Beispielausgabe

Date SaleQty
01.01.1970 1000
3-Tage-Prognose
[1000,1001,1002]

Maschinelles Sehen

Bildklassifizierung

Die Bildklassifizierung wird verwendet, um Bilder unterschiedlicher Kategorien zu identifizieren. Beispiele hierfür sind unterschiedliche Arten von Gelände, Tieren oder Fertigungsfehlern.

Sie können das Szenario für die Bildklassifizierung verwenden, wenn Sie über einen Satz von Bildern verfügen und die Bilder in verschiedene Kategorien klassifizieren möchten.

Beispieleingabe

Beispielausgabe

Profile view of standing pug

Vorhergesagte Bezeichnung
Hund
Objekterkennung

Die Objekterkennung dient dem Suchen und Kategorisieren von Entitäten auf Bildern. Beispiele hierfür sind das Suchen und Identifizieren von Autos und Personen auf einem Bild.

Sie können die Objekterkennung verwenden, wenn Bilder mehrere Objekte verschiedener Typen enthalten.

Beispieleingabe

Beispielausgabe

Profile view of standing pug

Profile view of standing pug with bounding box and dog label

Verarbeitung natürlicher Sprache

Textklassifizierung

Die Textklassifizierung kategorisiert unformatierte Texteingaben.

Sie können das Textklassifizierungsszenario verwenden, wenn Sie über einen Satz von Dokumenten oder Kommentaren verfügen und sie in verschiedene Kategorien klassifizieren möchten.

Beispieleingabe

Beispielausgabe

Überprüfung
Ich mag dieses Steak wirklich!
Stimmung
Positiv

Umgebung

Sie können Ihr Machine Learning-Modell je nach Szenario lokal auf Ihrem Computer oder in der Cloud in Azure trainieren.

Wenn Sie ein lokales Training durchführen, arbeiten Sie innerhalb der Grenzen Ihrer Computerressourcen (CPU, Arbeitsspeicher und Datenträger). Wenn Sie das Training in der Cloud durchführen, können Sie Ihre Ressourcen in Abstimmung auf die Anforderungen Ihres Szenarios hochskalieren, insbesondere für große Datasets.

Szenario Lokale CPU Lokale GPU Azure
Datenklassifizierung ✔️
Wertvorhersage ✔️
Empfehlung ✔️
Vorhersagen ✔️
Bildklassifizierung ✔️ ✔️ ✔️
Objekterkennung ✔️
Textklassifizierung ✔️ ✔️

Daten

Sobald Sie Ihr Szenario ausgewählt haben, fordert der Modell-Generator Sie auf, ein Dataset bereitzustellen. Die Daten werden verwendet, um das beste Modell für Ihr Szenario zu trainieren, zu evaluieren und auszuwählen.

Diagram showing Model Builder steps

Der Modell-Generator unterstützt Datasets im TSV-, CSV- und TXT-Format sowie im SQL-Datenbankformat. Wenn Sie über eine TXT-Datei verfügen, sollten Spalten durch ,, ; oder \t getrennt werden.

Wenn das Dataset aus Bildern besteht, sind die unterstützten Dateitypen .jpg und .png.

Weitere Informationen finden Sie unter Laden von Trainingsdaten in den Modell-Generator.

Auswählen der Ausgabe für die Vorhersage (Bezeichnung)

Ein Dataset ist eine Tabelle mit Zeilen mit Trainingsbeispielen und Spalten mit Attributen. Jede Zeile enthält:

  • eine Bezeichnung (das Attribut, das Sie vorhersagen möchten)
  • Features (Attribute, die als Eingaben verwendet werden, um die Bezeichnung vorherzusagen).

Für das Szenario der Hauspreisvorhersage könnten folgende Features verwendet werden:

  • die Quadratmeterzahl des Hauses
  • die Anzahl an Schlafzimmern und Badezimmern
  • die Postleitzahl

Die Bezeichnung ist der historische Hauspreis für diese Zeile mit den Werten für die Quadratmeterzahl, Schlafzimmer- und Badezimmeranzahl und Postleitzahl.

Table showing rows and columns of house price data with features consisting of size rooms zip code and price label

Beispieldatasets

Wenn Sie noch keine eigenen Daten haben, probieren Sie eines dieser Datasets aus:

Szenario Beispiel Daten Bezeichnung Features
Klassifizierung Vorhersage von Umsatzanomalien product sales data Produktverkäufe Monat
Stimmungsvorhersage für Websitekommentare website comment data Bezeichnung (0 bei negativer Stimmung, 1, wenn positiv) Kommentar, Jahr
Vorhersage betrügerischer Kreditkartentransaktionen credit card data Klasse (1, wenn betrügerisch, andernfalls 0) Betrag, V1-V28 (anonymisierte Features)
Vorhersage des Issuetyps in einem GitHub-Repository GitHub issue data Bereich Titel, Beschreibung
Wertvorhersage Vorhersage des Preises für eine Taxifahrt taxi fare data Preis Fahrtzeit, Strecke
Bildklassifizierung Vorhersage der Kategorie einer Blume flower images Der Typ Blume: Gänseblümchen, Löwenzahn, Rosen, Sonnenblumen, Tulpen Die Bilddaten selbst
Empfehlung Vorhersage von Filmen, die einer Person gefallen movie ratings Benutzer, Filme Altersfreigabe

Training

Sobald Sie Ihr Szenario, Ihre Umgebung, Ihre Daten und Ihre Bezeichnung ausgewählt haben, trainiert der Modell-Generator das Modell.

Was bedeutet Training?

Das Training ist ein automatischer Prozess, bei dem der Modellgenerator dem Modell beibringt, wie es Fragen für Ihr Szenario beantworten kann. Nach dem Training kann Ihr Modell Vorhersagen mit ihm bisher unbekannten Eingabedaten treffen. Wenn Sie zum Beispiel die Hauspreise vorhersagen und ein neues Haus auf den Markt kommt, können Sie seinen Verkaufspreis vorhersagen.

Da der Modell-Generator automatisiertes maschinelles Lernen (AutoML) verwendet, ist während des Trainings keine Eingabe oder Anpassung durch Sie erforderlich.

Wie lange sollte ich das Modell trainieren?

Der Modell-Generator verwendet AutoML zum Untersuchen mehrerer Modelle, um das Modell mit der besten Leistung zu ermitteln.

Längere Trainingszeiträume ermöglichen es AutoML, mehr Modelle mit einer breiteren Palette von Einstellungen zu untersuchen.

In der folgenden Tabelle wird die durchschnittliche Zeit zusammengefasst, die benötigt wird, um eine gute Leistung für eine Suite von Beispieldatasets auf einem lokalen Computer zu erzielen.

Datasetgröße Durchschnittliche Trainingszeit
0 bis 10 MB 10 Sek.
10 bis 100 MB 10 Min.
100 bis 500 MB 30 Min.
500 MB bis 1 GB 60 Min.
Mehr als 1 GB Mehr als 3 Stunden

Diese Zahlen sind nur eine Richtlinie. Die genaue Trainingsdauer ist abhängig von:

  • Anzahl der Merkmale (Spalten), die als Eingabe für das Modell verwendet werden
  • Typ der Spalten
  • ML-Aufgabe
  • CPU-, Datenträger- und Arbeitsspeicherleistung des zum Training verwendeten Computers

Generell wird empfohlen, dass Sie mehr als 100 Zeilen verwenden, da Datasets mit weniger Zeilen möglicherweise keine Ergebnisse erzielen.

Auswerten

Auswertung ist der Prozess, bei dem gemessen wird, wie gut das Modell ist. Der Modell-Generator verwendet das trainierte Modell, um Vorhersagen mit neuen Testdaten zu treffen und anschließend zu messen, wie gut die Vorhersagen sind.

Der Modell-Generator unterteilt die Trainingsdaten in einen Trainingssatz und einen Testsatz. Die Trainingsdaten (80 %) werden zum Trainieren Ihres Modells verwendet, und die Testdaten (20 %) zur Evaluierung Ihres Modells zurückgehalten.

Wie gewinne ich ein Verständnis für die Modellleistung?

Ein Szenario wird einer Machine Learning-Aufgabe zugeordnet. Jede ML-Aufgabe verfügt über einen eigenen Satz von Auswertungsmetriken.

Wertvorhersage

Die Standardmetrik für Wertvorhersageprobleme ist RSquared. Der Wert von RSquared liegt zwischen 0 und 1. 1 ist der bestmögliche Wert, d. h. je näher der Wert von RSquared bei 1 liegt, desto besser ist die Leistung Ihres Modells.

Andere erfasste Metriken wie „absolute-loss“, „squared-loss“ und „RMS-loss“ sind zusätzliche Metriken, die verwendet werden können, um die Leistung Ihres Modells zu verstehen und es mit anderen Wertvorhersagemodellen zu vergleichen.

Klassifizierung (2 Kategorien)

Die Standardmetrik für binäre Klassifizierungsprobleme ist „accuracy“ (Genauigkeit). Sie definiert den Anteil an genauen Vorhersagen, die Ihr Modell anhand des Testdatasets trifft. Je näher der Wert bei 100 % oder 1,0 liegt, desto besser ist das Modell.

Andere gemeldete Metriken wie AUC (Area under the curve, Fläche unter der Kurve), die den Anteil der tatsächlich positiven Ergebnisse mit dem Anteil der falsch positiven Ergebnisse abgleicht, sollten größer als 0,50 sein, damit Modelle akzeptabel sind.

Zusätzliche Metriken wie die F1-Bewertung können verwendet werden, um das Gleichgewicht zwischen Genauigkeit und Rückruf zu steuern.

Klassifizierung (3 Kategorien und mehr)

Die Standardmetrik für mehrklassige Klassifizierung ist „Micro Accuracy“. Je näher „Mico Accuracy“ bei 100 % oder 1,0 liegt, desto besser ist das Modell.

Eine weitere wichtige Metrik für die mehrklassige Klassifizierung ist „Macro-accuracy“. Ähnlich wie bei „Micro-accuracy“ ist das Modell umso besser, je näher der Wert bei 1,0 liegt. Eine gute Möglichkeit, diese beiden Genauigkeitstypen zu unterscheiden:

  • Micro-accuracy: Wie oft wird ein eingehendes Ticket dem richtigen Team zugeordnet?
  • Macro-accuracy: Wie oft ist für ein durchschnittliches Team ein eingehendes Ticket das richtige Ticket für das Team?

Weitere Informationen zu Auswertungsmetriken

Weitere Informationen finden Sie unter Metriken für die Modellevaluierung.

Verbessern

Wenn Ihr Modellleistungswert nicht so gut ist, wie Sie es sich wünschen, haben Sie die folgenden Möglichkeit:

  • Längeres Trainieren. Je mehr Zeit einer automatisierten Machine Learning-Engine zum Trainieren zur Verfügung steht, desto mehr Algorithmen und Einstellungen kann sie ausprobieren.

  • Weitere Daten hinzufügen. Manchmal reicht die Datenmenge nicht aus, um ein hochwertiges Machine Learning-Modell zu trainieren. Dies gilt besonders für Datasets mit einer kleinen Anzahl von Beispielen.

  • Ihre Daten ausgleichen. Achten Sie bei Klassifizierungsaufgaben darauf, dass der Trainingssatz über die Kategorien hinweg gleichmäßig verteilt ist. Wenn Sie beispielsweise vier Klassen für 100 Trainingsbeispiele haben und die beiden ersten Klassen (tag1 und tag2) für 90 Datensätze verwendet werden, die anderen beiden (tag3 und tag4) aber nur für die restlichen 10 Datensätze, kann das dazu führen, dass Ihr Modell Schwierigkeiten hat, tag3 oder tag4 korrekt vorherzusagen, da die Daten nicht gleichmäßig verteilt sind.

Nutzen

Nach der Evaluierungsphase gibt der Modell-Generator eine Modelldatei und einen Code aus, mit dem Sie das Modell zur Ihrer Anwendung hinzufügen können. ML.NET-Modelle werden als Zip-Datei gespeichert. Der Code zum Laden und Verwenden Ihres Modells wird als neues Projekt in Ihrer Projektmappe hinzugefügt. Der Modell-Generator fügt auch eine Beispiel-Konsolen-App hinzu, die Sie ausführen können, um Ihr Modell in Aktion zu sehen.

Darüber hinaus bietet Model Builder Ihnen die Möglichkeit, Projekte zu erstellen, die Ihr Modell nutzen. Derzeit erstellt Model Builder die folgenden Projekte:

  • Konsolen-App: Erstellt eine .NET Core-Konsolenanwendung, um Vorhersagen auf Grundlage Ihres Modells zu treffen
  • Web-API: Erstellt eine ASP.NET Core-Web-API, mit der Sie Ihr Modell über das Internet nutzen können

Ausblick

Installieren Sie die Modellgeneratorerweiterung für Visual Studio.

Probieren Sie ein Szenario für die Preisvorhersage oder Regression aus.