Machine Learning-Aufgaben in ML.NET

Bei einer Machine Learning-Aufgabe handelt es sich um den Typ der Vorhersage oder Rückschlüsse, basierend auf dem Problem oder der Frage, das bzw. die gestellt wird, und den verfügbaren Daten. Beispielsweise ordnet die Klassifizierungsaufgabe Daten Kategorien zu, und die Clusteringaufgabe gruppiert Daten nach ihrer Ähnlichkeit.

Machine Learning-Aufgaben basieren auf Mustern in den Daten, anstatt explizit programmiert zu werden.

In diesem Artikel werden die verschiedenen Machine Learning-Aufgaben beschrieben, unter denen Sie in ML.NET auswählen können, sowie einige häufige Anwendungsfälle.

Nachdem Sie entschieden haben, welche Aufgabe auf Ihr Szenario zutrifft, müssen Sie den besten Algorithmus zum Trainieren Ihres Modells auswählen. Die verfügbaren Algorithmen sind im Abschnitt zur jeweiligen Aufgabe aufgeführt.

Binäre Klassifizierung

Eine überwachte Machine Learning-Aufgabe, um vorherzusagen, zu welcher von zwei Klassen (Kategorien) eine Dateninstanz gehört. Die Eingabe eines Klassifizierungsalgorithmus ist ein Satz bezeichneter Beispiele, wo jede Bezeichnung entweder die Ganzzahl 0 oder 1 ist. Die Ausgabe eines binären Klassifizierungsalgorithmus ist ein Klassifizierer, den Sie verwenden können, um die Klasse der neuen nicht bezeichneten Instanzen vorherzusagen. Zu den Beispielen binärer Klassifizierungsszenarien zählen:

  • Verstehen des Standpunkts in Twitter-Kommentaren als „positiv“ oder „negativ“.
  • Diagnostizieren, ob bei einem Patienten eine bestimmte Krankheit vorliegt oder nicht.
  • Treffen einer Entscheidung, um eine E-Mail-Nachricht als „Spam“ zu markieren oder nicht.
  • Ermitteln, ob ein Foto ein bestimmtes Element, z. B. einen Hund oder eine Frucht, enthält oder nicht

Weitere Informationen finden Sie auf Wikipedia im Artikel zur binären Klassifizierung.

Trainer für die binäre Klassifizierung

Sie können ein binäres Klassifizierungsmodell mithilfe der folgenden Algorithmen trainieren:

Eingaben und Ausgaben für die binäre Klassifizierung

Für optimale Ergebnisse bei der binären Klassifizierung sollten die Trainingsdaten ausgeglichen sein (d.h. eine gleiche Anzahl von positiven und negativen Trainingsdaten). Fehlende Werte sollten vor dem Training bearbeitet werden.

Die Daten in der Spalte für die Eingabezeichnung müssen Boolean sein. Die Daten in der Spalte für die Eingabefeatures müssen ein Vektor fester Größe von Single sein.

Diese Trainer geben die folgenden Spalten aus:

Name der Ausgabespalte Spaltentyp Beschreibung
Score Single Die vom Modell berechnete unformatierte Bewertung
PredictedLabel Boolean Der vorhergesagte Bezeichnung, basierend auf dem Abzeichnen der Bewertung. Eine negative Bewertung wird false und eine positive Bewertung wird true zugeordnet.

Multiklassenklassifizierung

Eine überwachte Machine Learning-Aufgabe, um die Klasse (Kategorie) einer Dateninstanz vorherzusagen. Die Eingabe eines Klassifizierungsalgorithmus ist ein Satz bezeichneter Beispiele. Jede Bezeichnung beginnt normalerweise als Text. Sie wird dann über TermTransform ausgeführt, wodurch sie in den (numerischen) Schlüsseltyp konvertiert wird. Die Ausgabe eines Klassifizierungsalgorithmus ist ein Klassifizierer, den Sie verwenden können, um die Klasse der neuen nicht bezeichneten Instanzen vorherzusagen. Zu den Beispielen für Multiklassen-Klassifizierungsszenarien zählen:

  • Kategorisieren von Flügen als „früh“, „pünktlich“ oder „spät“.
  • Verstehen von Filmkritiken als „positiv“, „neutral“ oder „negativ“.
  • Kategorisieren von Hoteltests in „Lage“, „Preis“, „Sauberkeit“ usw.

Weitere Informationen finden Sie auf Wikipedia im Artikel zur Multiklassenklassifizierung.

Hinweis

One-vs-All (OvA) aktualisiert alle Binärklassifizierungs-Lernmodule, sodass sie Multiklassendatasets bearbeiten. Weitere Informationen finden Sie auf Wikipedia.

Trainer für die Multiklassenklassifizierung

Sie können ein Modell zur Multiklassenklassifizierung mithilfe der folgenden Algorithmen trainieren:

Eingaben und Ausgaben für die Multiklassenklassifizierung

Die Daten in der Spalte für die Eingabezeichnung müssen vom Typ key sein. Die Featurespalte muss ein Vektor fester Größe von Single sein.

Der Trainer gibt folgende Daten aus:

Ausgabename Typ Beschreibung
Score Vektor von Single Die Bewertungen aller Klassen. Ein höherer Wert bedeutet eine höhere Wahrscheinlichkeit, in die zugehörige Klasse zu fallen. Wenn das i-te Element den größten Wert hat, wäre der vorhergesagte Bezeichnungsindex i. Beachten Sie, dass „i“ ein nullbasierter Index ist.
PredictedLabel Typ key Der Index der vorhergesagten Bezeichnung. Wenn sein Wert i ist, wäre die eigentliche Bezeichnung die i-te Kategorie des Typs der Schlüssel-Wert-Eingabebezeichnung.

Regression

Eine überwachte Machine Learning-Aufgabe, die verwendet wird, um den Wert der Bezeichnung aus einem Satz verwandter Features vorherzusagen. Die Bezeichnung kann einen realen Wert haben und stammt nicht aus einem endlichen Satz von Werten wie bei Klassifizierungsaufgaben. Regressionsalgorithmen modellieren die Abhängigkeit der Bezeichnung von den zugehörigen verwandten Features, um zu bestimmen, wie sich die Bezeichnung ändert, wenn die Werte der Features variiert werden. Die Eingabe eines Regressionsalgorithmus ist eine Reihe von Beispielen mit Bezeichnungen bekannter Werte. Die Ausgabe eines Regressionsalgorithmus ist eine Funktion, die Sie verwenden können, um den Bezeichnungswert für einen neuen Satz von Eingabefeatures vorherzusagen. Beispiele für Regressionsszenarien sind:

  • Hauspreisvorhersagen basierend auf Hausattributen wie der Anzahl von Schlafzimmern, Lage und Größe.
  • Vorhersagen zukünftiger Aktienkurse basierend auf historischen Daten und aktuellen Markttrends.
  • Vorhersagen für den Verkauf eines Produkts basierend auf Werbebudgets.

Regressionstrainer

Sie können ein Regressionsmodell mithilfe der folgenden Algorithmen trainieren:

Eingaben und Ausgaben für die Regression

Die Daten in der Spalte für die Eingabezeichnung müssen Single sein.

Die Trainer für diese Ausgabe geben folgende Daten aus:

Ausgabename Typ Beschreibung
Score Single Die vom Modell vorhergesagte unformatierte Bewertung

Clusterbildung

Eine nicht überwachte Machine Learning-Aufgabe, die verwendet wird, um Instanzen von Daten in Clustern zu gruppieren, die ähnliche Merkmale aufweisen. Die Clusterbildung kann auch zum Identifizieren von Beziehungen in einem Dataset verwendet werden, die Sie möglicherweise nicht logisch durch Durchsuchen oder einfache Beobachtung ableiten können. Die Eingaben und Ausgaben eines Clusterbildungsalgorithmus hängen von der ausgewählten Methodik ab. Sie können einen verteilungs-, schwerpunkt-, konnektivitäts- oder dichtebasierten Ansatz wählen. ML.NET unterstützt derzeit einen schwerpunktbasierten Ansatz bei Verwendung der K-Means-Clusterbildung. Beispiele für Clusterbildungsszenarien sind:

  • Grundlegendes zu Segmenten von Hotelgästen basierend auf Gewohnheiten und Merkmalen der Hotelauswahl.
  • Identifizieren von Kundensegmenten und demografischen Daten, um gezielte Werbekampagnen erstellen zu können.
  • Kategorisieren des Lagerbestands basierend auf Produktionsmetriken.

Trainerclustering

Sie können ein Modell zur Clusterbildung mithilfe der folgenden Algorithmen trainieren:

Eingaben und Ausgaben für das Clustering

Die Daten der Eingabefeatures müssen Single sein. Es sind keine Bezeichnungen erforderlich.

Der Trainer gibt folgende Daten aus:

Ausgabename Typ Beschreibung
Score Vektor von Single Die Abstände der angegebenen Daten weisen auf die Schwerpunkte aller Cluster hin.
PredictedLabel Typ key Der Index des nächsten Clusters, der durch das Modell vorhergesagt wird.

Anomalieerkennung

Diese Aufgabe erstellt ein Anomalieerkennungsmodell mithilfe der Principal Component Analysis (PCA). Die Anomalieerkennung auf PCA-Basis unterstützt Sie beim Erstellen eines Modells in Szenarien, in denen mühelos Trainingsdaten aus einer Klasse, z.B. gültige Transaktionen, aber nur schwer ausreichende Beispiele für die gesuchten Anomalien zu erhalten sind.

Als bewährtes Verfahren im Machine Learning wird PCA häufig in der explorativen Datenanalyse verwendet, da es die innere Struktur der Daten zeigt und die Abweichung in den Daten erläutert. PCA arbeitet mit der Analyse von Daten, die mehrere Variablen enthalten. Sie sucht nach Korrelationen zwischen den Variablen und bestimmt die Kombination von Werten, die die Unterschiede in den Ergebnissen am besten erfasst. Mit diesen kombinierten Featurewerten wird ein kompakterer Featurebereich erstellt, der als „Hauptkomponenten“ bezeichnet wird.

Die Anomalieerkennung umfasst viele wichtige Machine Learning-Aufgaben:

  • Identifizieren potenziell betrügerischer Transaktionen.
  • Erlernen von Mustern, die anzeigen, dass der Versuch unternommen wurde, in das Netzwerk einzudringen.
  • Finden anomaler Patientencluster.
  • Überprüfen von Werten, die in ein System eingegeben werden.

Da Anomalien laut Definition selten sind, kann es schwierig sein, eine repräsentative Stichprobe von Daten zu sammeln, die für die Modellierung verwendet werden können. Die Algorithmen, die zu dieser Kategorie gehören, wurden insbesondere daraufhin konzipiert, den wesentlichen Herausforderungen beim Erstellen und Trainieren von Modellen mithilfe von unausgeglichenen Datasets gerecht zu werden.

Trainer für die Anomalieerkennung

Sie können ein Anomalieerkennungsmodell mithilfe der folgenden Algorithmen trainieren:

Eingaben und Ausgaben für die Anomalieerkennung

Die Eingabefeatures müssen ein Vektor fester Größe von Single sein.

Der Trainer gibt folgende Daten aus:

Ausgabename Typ Beschreibung
Score Single Die nicht-negative, unbegrenzte Bewertung, die durch das Anomalieerkennungsmodell berechnet wurde.
PredictedLabel Boolean Ein TRUE/FALSE-Wert, der angibt, ob es sich bei der Eingabe um eine Anomalie (PredictedLabel=true) oder um keine Anomalie (PredictedLabel=false) handelt.

Rangfolge

Eine Rangfolgenaufgabe erstellt für einen Satz bezeichneter Beispiele eine Rangfolge. Dieser Beispielsatz besteht aus Instanzengruppen, die nach bestimmten Kriterien bewertet werden können. Die Rangfolgenbezeichnungen sind {0, 1, 2, 3, 4} für jede Instanz. Die Rangfolgenfunktion wird dafür trainiert, neue Instanzengruppen mit unbekannten Bewertungen für jede Instanz in die Rangfolge einzuordnen. ML.NET-Rangfolgen-Lernmodule basieren auf Machine Learning-Rangfolge.

Trainingsalgorithmen für Rangfolge

Sie können ein Rangfolgemodell mithilfe der folgenden Algorithmen trainieren:

Eingaben und Ausgaben für die Rangfolge

Der Datentyp für die Eingabebezeichnung muss ein Typ key oder Single sein. Der Wert der Bezeichnung bestimmt die Relevanz, wobei höhere Werte eine höhere Relevanz anzeigen. Wenn die Bezeichnung vom Typ key ist, dann ist der Schlüsselindex der Relevanzwert, wobei der kleinste Index der am wenigsten relevante ist. Wenn die Bezeichnung ein Single ist, zeigen höhere Werte eine höhere Relevanz an.

Die Featuredaten müssen ein Vektor mit fester Größe von Single sein, und die Gruppenspalte der Eingabezeilen muss vom Typ key sein.

Der Trainer gibt folgende Daten aus:

Ausgabename Typ Beschreibung
Score Single Die unbegrenzte Bewertung, die vom Modell berechnet wurde, um die Vorhersage zu bestimmen.

Empfehlung

Mit einer Empfehlungsaufgabe kann eine Liste empfohlener Produkte oder Dienste erstellt werden. ML.NET verwendet für Empfehlungen Matrixfaktorisierung (MF), einen Algorithmus für kollaboratives Filtern, wenn Ihr Katalog Verlaufsproduktbewertungs-Daten enthält. Ihnen liegen z. B. historische Filmbewertungsdaten Ihrer Benutzer vor, und Sie möchten andere Filme empfehlen, die sie wahrscheinlich als nächstes sehen möchten.

Trainingsalgorithmen für Empfehlung

Sie können ein Empfehlungsmodell mithilfe der folgenden Algorithmen trainieren:

Vorhersage

Bei der Aufgabe „Vorhersage“ werden anhand von Daten aus vergangenen Zeitreihen Vorhersagen über zukünftiges Verhalten getroffen. Zu den für die Vorhersage anwendbaren Szenarien gehören Wettervorhersagen, Vorhersagen zum Saisonumsatz und Predictive Maintenance.

Trainer für die Aufgabe „Vorhersage“

Sie können ein Vorhersagemodell mithilfe der folgenden Algorithmen trainieren:

ForecastBySsa

Bildklassifizierung

Eine überwachte Machine-Learning-Aufgabe zum Vorhersagen der Klasse (Kategorie) eines Images. Die Eingabe ist eine Reihe bezeichneter Beispiele. Jede Bezeichnung beginnt normalerweise als Text. Sie wird dann über TermTransform ausgeführt, wodurch sie in den (numerischen) Schlüsseltyp konvertiert wird. Die Ausgabe des Imageklassifizierungsalgorithmus ist ein Klassifizierer, den Sie verwenden können, um die Klasse der neuen Images vorherzusagen. Die Imageklassifizierungsaufgabe ist eine Art von Multiklassenklassifizierung. Zu den Beispielen für Imageklassifizierungsszenarien zählen:

  • Ermitteln der Rasse eines Hundes als „Sibirischer Husky“, „Golden Retriever“, „Pudel“ usw.
  • Ermitteln, ob ein Fertigungsprodukt fehlerhaft ist oder nicht.
  • Ermitteln der Arten von Blumen wie „Rose“, „Sonnenblume“ usw.

Trainer für die Imageklassifizierung

Sie können ein Modell zur Imageklassifizierung mithilfe der folgenden Algorithmen trainieren:

Eingaben und Ausgaben für die Imageklassifizierung

Die Daten in der Spalte für die Eingabezeichnung müssen vom Typ key sein. Die Featurespalte muss ein Vektor variabler Größe von Byte sein.

Der Trainer gibt folgende Spalten aus:

Ausgabename Typ BESCHREIBUNG
Score Single Die Bewertungen aller Klassen. Ein höherer Wert bedeutet eine höhere Wahrscheinlichkeit, in die zugehörige Klasse zu fallen. Wenn das i-te Element den größten Wert hat, wäre der vorhergesagte Bezeichnungsindex i. Beachten Sie, dass „i“ ein nullbasierter Index ist.
PredictedLabel Typ Key Der Index der vorhergesagten Bezeichnung. Wenn sein Wert i ist, wäre die eigentliche Bezeichnung die i-te Kategorie des Typs der Schlüssel-Wert-Eingabebezeichnung.

Objekterkennung

Eine überwachte Machine-Learning-Aufgabe, die zum Vorhersagen der Klasse (Kategorie) eines Images verwendet wird, aber auch ein Begrenzungsfeld angibt, an dem sich die betreffende Kategorie innerhalb des Images befindet. Anstatt ein einzelnes Objekt in einem Bild zu klassifizieren, kann die Objekterkennung mehrere Objekte innerhalb eines Bilds erkennen. Beispiele für die Objekterkennung:

  • Erkennen von Autos, Schildern oder Personen auf Bildern einer Straße.
  • Erkennen von Fehlern auf Bildern von Produkten.
  • Erkennen von Problembereichen in Röntgenbildern.

Das Training von Objekterkennungsmodellen ist derzeit nur in Model Builder mithilfe von Azure Machine Learning möglich.