Was ist der Modell-Generator und wie funktioniert er?What is Model Builder and how does it work?

Der ML.NET-Modell-Generator ist eine intuitive grafische Visual Studio-Erweiterung zum Erstellen, Trainieren und Bereitstellen von benutzerdefinierten Machine Learning-Modellen.ML.NET Model Builder is an intuitive graphical Visual Studio extension to build, train, and deploy custom machine learning models.

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.Model Builder uses automated machine learning (AutoML) to explore different machine learning algorithms and settings to help you find the one that best suits your scenario.

Für die Verwendung des Modell-Generators sind keine Machine Learning-Kenntnisse erforderlich.You don't need machine learning expertise to use Model Builder. Sie benötigen lediglich einige Daten und ein Problem, das Sie lösen möchten.All you need is some data, and a problem to solve. Modell-Generator generiert den Code, um das Modell zur Ihrer .NET-Anwendung hinzuzufügen.Model Builder generates the code to add the model to your .NET application.

Animation der Benutzeroberfläche der Visual Studio-Erweiterung für den Modell-Generator

Hinweis

Der Modell-Generator befindet sich derzeit in der Vorschauphase.Model Builder is currently in Preview.

SzenarienScenarios

Sie können viele verschiedene Szenarien in den Modell-Generator einbinden, um ein Machine Learning-Modell für Ihre Anwendung zu erstellen.You can bring many different scenarios to Model Builder, to generate a machine learning model for your application.

Ein Szenario ist eine Beschreibung der Art der Vorhersage, die Sie mit Ihren Daten treffen möchten.A scenario is a description of the type of prediction you want to make using your data. Zum Beispiel:For example:

  • Vorhersagen des zukünftigen Produktabsatzes auf der Grundlage historischer Verkaufsdatenpredict future product sales volume based on historical sales data
  • Klassifizieren der Stimmungen als positiv oder negativ anhand von Kundenrezensionenclassify sentiments as positive or negative based on customer reviews
  • Erkennen einer betrügerischen Banktransaktiondetect whether a banking transaction is fraudulent
  • Weiterleiten von Problemen beim Kundenfeedback an das richtige Team in Ihrem Unternehmenroute customer feedback issues to the correct team in your company

Welches Machine Learning-Szenario ist für mich geeignet?Which machine learning scenario is right for me?

Im Modell-Generator müssen Sie ein Szenario auswählen.In Model Builder, you need to select a scenario. Der Typ des Szenarios hängt davon ab, welchen Typ von Vorhersage Sie treffen möchten.The type of scenario depends on what type of prediction you are trying to make.

Vorhersagen einer Kategorie (wenn nur zwei Kategorien vorliegen)Predict a category (when there are only two categories)

Die binäre Klassifizierung wird verwendet, um Daten in zwei Kategorien zu unterteilen (ja/nein; Erfolg/Fehler; wahr/falsch; positiv/negativ).Binary classification is used to categorize data into two categories (yes/no; pass/fail; true/false; positive/negative).

Diagramm mit Beispielen für die binäre Klassifizierung, einschließlich Betrugserkennung, Risikominderung und Bewerbungsüberprüfung

Die Standpunktanalyse kann verwendet werden, um positive oder negative Stimmungen im Kundenfeedback vorherzusagen.Sentiment analysis can be used to predict positive or negative sentiment of customer feedback. Es ist ein Beispiel für die binäre Machine Learning-Klassifizierungsaufgabe.It is an example of the binary classification machine learning task.

Wenn Ihr Szenario eine Klassifizierung in zwei Kategorien erfordert, können Sie diese Vorlage mit einem eigenen Dataset verwenden.If your scenario requires classification into two categories, you can use this template with your own dataset.

Vorhersagen einer Kategorie (wenn drei oder mehr Kategorien vorliegen)Predict a category (when there are three or more categories)

Die Multiklassenklassifizierung kann für die Kategorisierung von Daten in drei oder mehr Klassen verwendet werden.Multiclass classification can be used to categorize data into three or more classes.

Beispiele für die Mehrklassenklassifizierung, einschließlich Dokument- und Produktklassifizierung, Supportticketweiterleitung und Kundenproblempriorisierung

Die Fehlerklassifizierung kann verwendet werden, um Kundenfeedback (z.B. zu GitHub) anhand des Problemtitels und der Beschreibung zu kategorisieren.Issue classification can be used to categorize customer feedback (for example, on GitHub) issues using the issue title and description. Es ist ein Beispiel für die Machine Learning-Multiklassen-Klassifizierungsaufgabe.It is an example of the multi-class classification machine learning task.

Sie können die Vorlage für die Fehlerklassifizierung für Ihr Szenario verwenden, wenn Sie Daten in drei oder mehr Kategorien einteilen möchten.You can use the issue classification template for your scenario if you want to categorize data into three or more categories.

Vorhersagen einer ZahlPredict a number

Die Regression wird verwendet, um Zahlen vorherzusagen.Regression is used to predict numbers.

Diagramm mit Regressionsbeispielen wie Preisvorhersagen, Umsatzvorhersagen und Predictive Maintenance

Die Preisvorhersage kann verwendet werden, um Hauspreise anhand von Lage, Größe und anderen Merkmalen des Hauses vorherzusagen.Price prediction can be used to predict house prices using location, size, and other characteristics of the house. Es ist ein Beispiel für die Machine Learning-Regressionsaufgabe.It is an example of the regression machine learning task.

Sie können die Vorlage für die Preisvorhersage für Ihr Szenario verwenden, wenn Sie einen Zahlenwert mit einem eigenen Dataset vorhersagen möchten.You can use the price prediction template for your scenario if you want to predict a numerical value with your own dataset.

Klassifizieren von Bildern in KategorienClassify images into categories

Bei diesem Szenario handelt es sich um einen Sonderfall der Klassifizierung mit mehreren Klassen, bei dem die zu kategorisierenden Eingabedaten aus einem Satz von Bildern bestehen.This scenario is a special case of multiclass classification, where the input data to be categorized is a set of images.

Bildklassifizierung kann verwendet werden, um Bilder unterschiedlicher Kategorien zu identifizieren.Image classification can be used to identify images of different categories. Beispiele hierfür sind unterschiedliche Arten von Gelände, Tieren oder Fertigungsfehlern.For example, different types of terrain or animals or manufacturing defects.

Sie können die Bildklassifizierungsvorlage für Ihr Szenario verwenden, wenn Sie über einen Satz von Bildern verfügen und die Bilder in verschiedene Kategorien klassifizieren möchten.You can use the image classification template for your scenario if you have a set of images, and you want to classify the images into different categories.

Benutzerdefiniertes SzenarioCustom scenario

Im benutzerdefinierten Szenario können Sie Ihr Szenario manuell auswählen.The custom scenario allows you to manually choose your scenario.

DatenData

Sobald Sie Ihr Szenario ausgewählt haben, fordert der Modell-Generator Sie auf, ein Dataset bereitzustellen.Once you have chosen your scenario, Model Builder asks you to provide a dataset. Die Daten werden verwendet, um das beste Modell für Ihr Szenario zu trainieren, zu evaluieren und auszuwählen.The data is used to train, evaluate, and choose the best model for your scenario.

Diagramm mit dem Schritten im Modellgenerator

Der Modell-Generator unterstützt Datasets im TSV-, CSV- und TXT-Format sowie im SQL-Datenbankformat.Model Builder supports datasets in .tsv, .csv, .txt formats, as well as SQL database format. Wenn Sie über eine TXT-Datei verfügen, müssen die Spalten durch ,, ; oder /t getrennt werden, und die Datei muss eine Kopfzeile aufweisen.If you have a .txt file, columns should be separated with ,, ; or /t and the file must have a header row.

Wenn das Dataset aus Bildern besteht, sind die unterstützten Dateitypen .jpg und .png.If the dataset is made up of images, the supported file types are .jpg and .png.

Weitere Informationen finden Sie unter Laden von Trainingsdaten in den Modell-Generator.For more information, see Load training data into Model Builder.

Auswählen der Ausgabe für die Vorhersage (Bezeichnung)Choose the output to predict (label)

Ein Dataset ist eine Tabelle mit Zeilen mit Trainingsbeispielen und Spalten mit Attributen.A dataset is a table of rows of training examples, and columns of attributes. Jede Zeile enthält:Each row has:

  • eine Bezeichnung (das Attribut, das Sie vorhersagen möchten)a label (the attribute that you want to predict)
  • Features (Attribute, die als Eingaben verwendet werden, um die Bezeichnung vorherzusagen).features (attributes that are used as inputs to predict the label).

Für das Szenario der Hauspreisvorhersage könnten folgende Features verwendet werden:For the house-price prediction scenario, the features could be:

  • die Quadratmeterzahl des Hausesthe square footage of the house
  • die Anzahl an Schlafzimmern und Badezimmernthe number of bedrooms and bathrooms
  • die Postleitzahlthe zip code

Die Bezeichnung ist der historische Hauspreis für diese Zeile mit den Werten für die Quadratmeterzahl, Schlafzimmer- und Badezimmeranzahl und Postleitzahl.The label is the historical house price for that row of square footage, bedroom, and bathroom values and zip code.

Tabelle mit Zeilen und Spalten mit Hauspreisdaten mit Features bestehend aus Größe, Räumen, Postleitzahl und Preisangabe

BeispieldatasetsExample datasets

Wenn Sie noch keine eigenen Daten haben, probieren Sie eines dieser Datasets aus:If you don't have your own data yet, try out one of these datasets:

SzenarioScenario ML-AufgabeML task DatenData BezeichnungLabel FeaturesFeatures
PreisvorhersagePrice prediction Regressionregression taxi fare datataxi fare data PreisFare Fahrtzeit, StreckeTrip time, distance
AnomalieerkennungAnomaly detection Binäre Klassifizierungbinary classification product sales dataproduct sales data ProduktverkäufeProduct Sales MonatMonth
StandpunktanalyseSentiment analysis Binäre Klassifizierungbinary classification website comment datawebsite comment data Bezeichnung (0 bei negativer Stimmung, 1, wenn positiv)Label (0 when negative sentiment, 1 when positive) Kommentar, JahrComment, Year
BetrugserkennungFraud detection Binäre Klassifizierungbinary classification credit card datacredit card data Klasse (1, wenn betrügerisch, andernfalls 0)Class (1 when fraudulent, 0 otherwise) Betrag, V1-V28 (anonymisierte Features)Amount, V1-V28 (anonymized features)
TextklassifizierungText classification Multiklassenklassifizierungmulticlass classification GitHub issue dataGitHub issue data BereichArea Titel, BeschreibungTitle, Description
BildklassifizierungImage classification Multiklassenklassifizierungmulticlass classification BlumenbilderFlowers images Der Typ Blume: Gänseblümchen, Löwenzahn, Rosen, Sonnenblumen, TulpenThe type of flower: daisy, dandelion, roses, sunflowers, tulips Die Bilddaten selbstThe image data itself

TrainingTrain

Sobald Sie Ihr Szenario, Ihre Daten und Ihre Bezeichnung ausgewählt haben, trainiert der Modell-Generator das Modell.Once you select your scenario, data, and label, Model Builder trains the model.

Was bedeutet Training?What is training?

Das Training ist ein automatischer Prozess, bei dem der Modellgenerator dem Modell beibringt, wie es Fragen für Ihr Szenario beantworten kann.Training is an automatic process by which Model Builder teaches your model how to answer questions for your scenario. Nach dem Training kann Ihr Modell Vorhersagen mit ihm bisher unbekannten Eingabedaten treffen.Once trained, your model can make predictions with input data that it has not seen before. Wenn Sie zum Beispiel die Hauspreise vorhersagen und ein neues Haus auf den Markt kommt, können Sie seinen Verkaufspreis vorhersagen.For example, if you are predicting house prices and a new house comes on the market, you can predict its sale price.

Da der Modell-Generator automatisiertes maschinelles Lernen (AutoML) verwendet, ist während des Trainings keine Eingabe oder Anpassung durch Sie erforderlich.Because Model Builder uses automated machine learning (AutoML), it does not require any input or tuning from you during training.

Wie lange sollte ich das Modell trainieren?How long should I train for?

Der Modell-Generator verwendet AutoML zum Untersuchen mehrerer Modelle, um das Modell mit der besten Leistung zu ermitteln.Model Builder uses AutoML to explore multiple models to find you the best performing model.

Längere Trainingszeiträume ermöglichen es AutoML, mehr Modelle mit einer breiteren Palette von Einstellungen zu untersuchen.Longer training periods allow AutoML to explore more models with a wider range of settings.

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.The table below summarizes the average time taken to get good performance for a suite of example datasets, on a local machine.

DatasetgrößeDataset size Durchschnittliche TrainingszeitAverage time to train
0 bis 10 MB0 - 10 MB 10 Sek.10 sec
10 bis 100 MB10 - 100 MB 10 Min.10 min
100 bis 500 MB100 - 500 MB 30 Min.30 min
500 MB bis 1 GB500 - 1 GB 60 Min.60 min
Mehr als 1 GB1 GB+ Mehr als 3 Stunden3+ hours

Diese Zahlen sind nur eine Richtlinie.These numbers are a guide only. Die genaue Trainingsdauer ist abhängig von:The exact length of training is dependent on:

  • Anzahl der Merkmale (Spalten), die als Eingabe für das Modell verwendet werdenthe number of features (columns) being used to as input to the model
  • Typ der Spaltenthe type of columns
  • ML-Aufgabethe ML task
  • CPU-, Datenträger- und Arbeitsspeicherleistung des für das Training verwendeten Computersthe CPU, disk and memory performance of the machine used for training

AuswertenEvaluate

Auswertung ist der Prozess, bei dem gemessen wird, wie gut das Modell ist.Evaluation is the process of measuring how good your model is. Der Modell-Generator verwendet das trainierte Modell, um Vorhersagen mit neuen Testdaten zu treffen und anschließend zu messen, wie gut die Vorhersagen sind.Model Builder uses the trained model to make predictions with new test data, and then measures how good the predictions are.

Der Modell-Generator unterteilt die Trainingsdaten in einen Trainingssatz und einen Testsatz.Model Builder splits the training data into a training set and a test set. Die Trainingsdaten (80 %) werden zum Trainieren Ihres Modells verwendet, und die Testdaten (20 %) zur Evaluierung Ihres Modells zurückgehalten.The training data (80%) is used to train your model and the test data (20%) is held back to evaluate your model.

Wie gewinne ich ein Verständnis für die Modellleistung?How do I understand my model performance?

Ein Szenario wird einer Machine Learning-Aufgabe zugeordnet.A scenario maps to a machine learning task. Jede ML-Aufgabe verfügt über einen eigenen Satz von Auswertungsmetriken.Each ML task has its own set of evaluation metrics.

Regression (z. B. Preisvorhersage)Regression (for example, Price Prediction)

Die Standardmetrik für Regressionsprobleme ist RSquared. Der Wert von RSquared liegt zwischen 0 und 1.The default metric for regression problems is RSquared, the value of RSquared ranges between 0 and 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.1 is the best possible value or in other words the closer the value of RSquared to 1 the better your model is performing.

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 Regressionsmodellen zu vergleichen.Other metrics reported such as absolute-loss, squared-loss, and RMS loss are additional metrics, which can be used to understand how your model is performing and comparing it against other regression models.

Binäre Klassifizierung (beispielsweise Standpunktanalyse)Binary Classification (for example, Sentiment Analysis)

Die Standardmetrik für binäre Klassifizierungsprobleme ist „accuracy“ (Genauigkeit).The default metric for classification problems is accuracy. Sie definiert den Anteil an genauen Vorhersagen, die Ihr Modell anhand des Testdatasets trifft.Accuracy defines the proportion of correct predictions your model is making over the test dataset. Je näher der Wert bei 100 % oder 1,0 liegt, desto besser ist das Modell.The closer to 100% or 1.0 the better it is.

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.Other metrics reported such as AUC (Area under the curve), which measures the true positive rate vs. the false positive rate should be greater than 0.50 for models to be acceptable.

Zusätzliche Metriken wie die F1-Bewertung können verwendet werden, um das Gleichgewicht zwischen Genauigkeit und Rückruf zu steuern.Additional metrics like F1 score can be used to control the balance between Precision and Recall.

Mehrklassige Klassifizierung (beispielsweise Problemklassifizierung, Bildklassifizierung)Multi-Class Classification (for example, Issue Classification, Image Classification)

Die Standardmetrik für mehrklassige Klassifizierung ist „Micro Accuracy“.The default metric for Multi-class classification is Micro Accuracy. Je näher „Mico Accuracy“ bei 100 % oder 1,0 liegt, desto besser ist das Modell.The closer the Micro Accuracy to 100% or 1.0 the better it is.

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.Another important metric for Multi-class classification is Macro-accuracy, similar to Micro-accuracy the closer to 1.0 the better it is. Eine gute Möglichkeit, diese beiden Genauigkeitstypen zu unterscheiden:A good way to think about these two types of accuracy is:

  • Micro-accuracy: Wie oft wird ein eingehendes Ticket dem richtigen Team zugeordnet?Micro-accuracy: How often does an incoming ticket get classified to the right team?
  • Macro-accuracy: Wie oft ist für ein durchschnittliches Team ein eingehendes Ticket das richtige Ticket für das Team?Macro-accuracy: For an average team, how often is an incoming ticket correct for their team?

Weitere Informationen zu AuswertungsmetrikenMore information on evaluation metrics

Weitere Informationen finden Sie unter Metriken für die Modellevaluierung.For more information, see model evaluation metrics.

VerbessernImprove

Wenn Ihr Modellleistungswert nicht so gut ist, wie Sie es sich wünschen, haben Sie die folgenden Möglichkeit:If your model performance score is not as good as you want it to be, you can:

  • Längeres Trainieren.Train for a longer period of time. Mit mehr Zeit kann die automatisierte Machine Learning-Engine mehrere Algorithmen und Einstellungen auszuprobieren.With more time, the automated machine learning engine to try more algorithms and settings.

  • Weitere Daten hinzufügen.Add more data. Manchmal reicht die Datenmenge nicht aus, um ein hochwertiges Machine Learning-Modell zu trainieren.Sometimes the amount of data is not sufficient to train a high-quality machine learning model.

  • Ihre Daten ausgleichen.Balance your data. Achten Sie bei Klassifizierungsaufgaben darauf, dass der Trainingssatz über die Kategorien hinweg gleichmäßig verteilt ist.For classification tasks, make sure that the training set is balanced across the categories. 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.For example, if you have four classes for 100 training examples, and the two first classes (tag1 and tag2) are used for 90 records, but the other two (tag3 and tag4) are only used on the remaining 10 records, the lack of balanced data may cause your model to struggle to correctly predict tag3 or tag4.

CodeCode

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.After the evaluation phase, Model Builder outputs a model file, and code that you can use to add the model to your application. ML.NET-Modelle werden als Zip-Datei gespeichert.ML.NET models are saved as a zip file. Der Code zum Laden und Verwenden Ihres Modells wird als neues Projekt in Ihrer Projektmappe hinzugefügt.The code to load and use your model is added as a new project in your solution. Der Modell-Generator fügt auch eine Beispiel-Konsolen-App hinzu, die Sie ausführen können, um Ihr Modell in Aktion zu sehen.Model Builder also adds a sample console app that you can run to see your model in action.

Darüber hinaus gibt der Modell-Generator den Code aus, der das Modell generiert hat, sodass Sie die Schritte zur Generierung des Modells nachvollziehen können.In addition, Model Builder outputs the code that generated the model, so that you can understand the steps used to generate the model. Sie können den Modelltrainingscode auch verwenden, um Ihr Modell mit neuen Daten zu trainieren.You can also use the model training code to retrain your model with new data.

AusblickWhat's next?

Installieren Sie die Modellgeneratorerweiterung für Visual Studio.Install the Model Builder Visual Studio extension

Probieren Sie ein Szenario für die Preisvorhersage oder Regression aus.Try price prediction or any regression scenario