Freigeben über


Maschinelle Lernaufgaben in ML.NET

Eine maschinelle Lernaufgabe ist eine Art von Vorhersage oder Ableitung, die auf beidem basiert:

  • Das Problem oder die Frage
  • Die verfügbaren Daten

Beispielsweise weist die Klassifizierungsaufgabe Daten Kategorien zu, und die Clustering-Aufgabe gruppiert Daten entsprechend der Ähnlichkeit.

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

In diesem Artikel werden die verschiedenen maschinellen Lernaufgaben beschrieben, die in ML.NET und einigen gängigen Anwendungsfällen verfügbar sind.

Nachdem Sie entschieden haben, welche Aufgabe für Ihr Szenario funktioniert, müssen Sie den besten Algorithmus auswählen, um Ihr Modell zu trainieren. Die verfügbaren Algorithmen werden im Abschnitt für jede Aufgabe aufgeführt.

Klassifizierungsaufgaben

Binäre Klassifizierung

Die binäre Klassifizierung ist eine Aufgabe des überwachten maschinellen Lernens, die verwendet wird, um vorherzusagen, zu welcher von genau zwei Klassen (Kategorien) eine Dateninstanz gehört. Die Eingabe eines Klassifizierungsalgorithmus ist eine Reihe von beschrifteten Beispielen, wobei jede Beschriftung eine ganze Zahl von 0 oder 1 ist. Die Ausgabe eines Binären Klassifizierungsalgorithmus ist ein Klassifizierer, mit dem Sie die Klasse neuer nicht bezeichneter Instanzen vorhersagen können. Beispiele für binäre Klassifizierungsszenarien sind:

  • Verstehen des emotionalen Gehalts in Twitter-Kommentaren als „positiv“ oder „negativ“.
  • Diagnose, ob ein Patient eine bestimmte Krankheit hat.
  • Treffen einer Entscheidung, eine E-Mail als Spam zu markieren.
  • Bestimmen, ob ein Foto ein bestimmtes Element enthält, z. B. ein Hund oder Obst.

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

Binärklassifizierungstrainer

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

Eingaben und Ausgaben für die binäre Klassifizierung

Um optimale Ergebnisse mit binärer Klassifizierung zu erzielen, sollten die Schulungsdaten ausgeglichen werden (d. a. gleiche Anzahl positiver und negativer Schulungsdaten). Fehlende Werte sollten vor der Schulung behandelt 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 rohe Punktzahl, die vom Modell berechnet wurde.
PredictedLabel Boolean Der vorhergesagte Bezeichnung, basierend auf dem Abzeichnen der Bewertung. Eine negative Bewertung wird false und eine positive Bewertung wird true zugeordnet.

Mehrklassenklassifizierung

Die Mehrklassenklassifizierung ist eine überwachte Aufgabe des maschinellen Lernens, die zur Klassifizierung einer Dateninstanz in eine von drei oder mehr Klassen (Kategorien) verwendet wird. Die Eingabe eines Klassifizierungsalgorithmus ist eine Reihe von beschrifteten Beispielen. Jede Beschriftung beginnt normalerweise als Text. Sie wird dann durch TermTransform geleitet, das sie zum (numerischen) Schlüsseltyp konvertiert. Die Ausgabe eines Klassifizierungsalgorithmus ist ein Klassifizierer, mit dem Sie die Klasse neuer nicht bezeichneter Instanzen vorhersagen können. Beispiele für Szenarien mit mehrklassigen Klassifizierungen sind:

  • Kategorisieren von Flügen als "früh", "pünktlich" oder "spät".
  • Verstehen von Filmkritiken als „positiv“, „neutral“ oder „negativ“.
  • Kategorisieren von Hotelbewertungen als "Location", "Preis" oder "Sauberkeit", z. B.

Weitere Informationen finden Sie auf Wikipedia im Artikel zur Multiklassen-Klassifizierung.

Anmerkung

One-vs.-Rest aktualisiert alle Binärklassifizierungs-Lernmodule so, dass sie Multiklassen-Datensätze bearbeiten.

Trainer für die Multiklassen-Klassifizierung

Sie können ein Mehrklassenklassifizierungsmodell mit den folgenden Schulungsalgorithmen trainieren:

Eingaben und Ausgaben für die Multiklassen-Klassifizierung

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.

Dieser Trainer gibt Folgendes aus:

Ausgabename type Beschreibung
Score Vektor von Single Die Bewertungen aller Klassen. Höherer Wert bedeutet eine höhere Wahrscheinlichkeit, in die zugeordnete 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 Schlüssel Der Index der vorhergesagten Bezeichnung. Wenn der Wert i ist, wäre die eigentliche Bezeichnung die i-te Kategorie des Eingabebezeichnungstyps „Schlüssel-Wert“.

Textklassifizierung

Die Textklassifizierung ist eine Unterkategorie der Mehrklassenklassifizierung, die sich speziell mit unformatiertem Text befasst. Text stellt interessante Herausforderungen dar, da Sie den Kontext und die Semantik berücksichtigen müssen, in der der Text auftritt. Daher kann es schwierig sein, Bedeutung und Kontext zu codieren.

Deep Learning Modelle haben sich als vielversprechende Technik entwickelt, um Probleme mit natürlicher Sprache zu lösen. Genauer gesagt, ist eine Art von neuronalem Netzwerk, das als Transformer bezeichnet wird, zur vorherrschenden Methode für die Lösung von Problemen der natürlichen Sprachverarbeitung wie Textklassifizierung, Übersetzung, Zusammenfassung und Fragen und Antworten geworden. Einige beliebte Transformatorarchitekturen für Aufgaben in natürlicher Sprache umfassen:

  • Bidirektionale Encoderdarstellungen aus Transformatoren (BERT)
  • Robust optimiertes BERT-Vorabtrainingskonzept (RoBERTa)
  • Generativer vorab trainierter Transformator (GPT)

Die ML.NET-Textklassifizierungs-API wird von TorchSharp unterstützt. TorchSharp ist eine .NET-Bibliothek, die Zugriff auf die Bibliothek bietet, die PyTorch unterstützt. TorchSharp enthält die Bausteine für das Training neuraler Netzwerke von Grund auf in .NET. ML.NET abstrahiert einige der Komplexität von TorchSharp auf die Szenarioebene. Sie verwendet eine vorab trainierte Version des NAS-BERT-Modells und optimiert sie anhand Ihrer Daten.

Ein Beispiel für eine Textklassifizierung finden Sie unter Erste Schritte mit der Textklassifizierungs-API.

Bildklassifizierung

Die Bildklassifizierung ist eine überwachten maschinellen Lernens Aufgabe, die verwendet wird, um die Klasse (Kategorie) eines Bilds vorherzusagen. Die Eingabe ist ein Satz von markierten Beispielen. Jede Beschriftung beginnt normalerweise als Text. Sie wird dann durch TermTransform geleitet, das sie zum (numerischen) Schlüsseltyp konvertiert. Die Ausgabe des Bildklassifizierungsalgorithmus ist ein Klassifizierer, mit dem Sie die Klasse neuer Bilder vorhersagen können. Die Bildklassifizierungsaufgabe ist eine Art von Klassifizierung mit mehreren Klassen. Beispiele für Bildklassifizierungsszenarien sind:

  • Ermitteln der Rasse eines Hundes als „Sibirischer Husky“, „Golden Retriever“, „Pudel“ usw.
  • Ermitteln, ob ein Herstellungsprodukt fehlerhaft ist oder nicht.
  • Bestimmen, welche Blumenarten als "Rose", "Sonnenblume" usw. bezeichnet werden.

Bildklassifizierungstrainer

Sie können ein Bildklassifizierungsmodell mit den folgenden Schulungsalgorithmen 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 type Beschreibung
Score Single Die Bewertungen aller Klassen. Höherer Wert bedeutet eine höhere Wahrscheinlichkeit, in die zugeordnete Klasse zu fallen. Wenn das i-te Element den größten Wert aufweist, wäre der vorhergesagte Label-Index i. (i ist ein nullbasierter Index.)
PredictedLabel Schlüssel-Typ Der Index der vorhergesagten Bezeichnung. Wenn der Wert i ist, wäre die eigentliche Bezeichnung die i-te Kategorie des Eingabebezeichnungstyps „Schlüssel-Wert“.

Regression

Regression ist eine überwachte maschinelle Lernaufgabe, die verwendet wird, um den Wert des Labels aus einer Reihe verwandter Merkmale vorherzusagen. Die Bezeichnung kann ein beliebiger realer Wert sein und stammt nicht aus einer endlichen Gruppe von Werten wie in Klassifizierungsaufgaben. Regressionsalgorithmen modellieren die Abhängigkeit der Bezeichnung zu den zugehörigen Features, um zu bestimmen, wie sich die Bezeichnung ändern wird, wenn die Werte der Features unterschiedlich sind. Die Eingabe eines Regressionsalgorithmus ist eine Reihe von Beispielen mit Bezeichnungen bekannter Werte. Die Ausgabe eines Regressionsalgorithmus ist eine Funktion, mit der Sie den Labelwert für jeden neuen Satz von Eingabemerkmalen vorhersagen können. Beispiele für Regressionsszenarien sind:

  • Vorhersagen von Hauspreisen basierend auf Hausattributen wie z. B. Anzahl von Schlafzimmern, Standort oder Größe.
  • Vorhersagen zukünftiger Aktienkurse basierend auf historischen Daten und aktuellen Markttrends.
  • Vorhersagen des Umsatzes eines Produkts basierend auf Werbebudgets.
  • Suchen verwandter Artikel in einer Publikation (Satzähnlichkeit).

Regressionstrainer

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

Regressionseingaben und -ausgaben

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

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

Ausgabename type Beschreibung
Score Single Der Rohwert, der vom Modell vorhergesagt wurde

Clustering

Clustering ist eine nicht überwachte Machine-Learning-Aufgabe, die verwendet wird, um Dateninstanzen in Clustern zu gruppieren, die ähnliche Merkmale aufweisen. Clustering kann auch verwendet werden, um Beziehungen in einem Datensatz zu identifizieren, die Sie möglicherweise nicht durch Durchsuchen oder durch einfaches Beobachten logisch ableiten können. Die Eingaben und Ausgaben eines Clusteringalgorithmus hängen von der gewä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 Clusteringszenarien sind:

  • Verstehen von Segmenten von Hotelgästen basierend auf Gewohnheiten und Merkmalen der Hotelauswahl.
  • Identifizieren von Kundensegmenten und demografischen Daten zur Erstellung gezielter Werbekampagnen.
  • Kategorisieren des Inventars basierend auf Fertigungsmetriken.

Trainerclustering

Sie können ein Clusteringmodell mit dem folgenden Algorithmus trainieren:

Eingaben und Ausgaben für das Clustering

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

Dieser Trainer gibt Folgendes aus:

Ausgabename type Beschreibung
Score Vektor von Single Die Abstände der angegebenen Daten weisen auf die Schwerpunkte aller Cluster hin.
PredictedLabel Schlüssel-Typ Der vom Modell vorhergesagte Index des nächstgelegenen Clusters.

Anomalieerkennung

Die Anomalieerkennungsaufgabe erstellt ein Anomalieerkennungsmodell mithilfe der Prinzipalkomponentenanalyse (PCA). Die PCA-basierte Anomalieerkennung hilft Ihnen beim Erstellen eines Modells in Szenarien, in denen es einfach ist, Schulungsdaten aus einer Klasse abzurufen, z. B. gültige Transaktionen, aber schwierig, ausreichende Stichproben der gezielten Anomalien zu erhalten.

Eine etablierte Technik im maschinellen Lernen, PCA wird häufig in der explorativen Datenanalyse verwendet, da sie die innere Struktur der Daten offenlegt und die Varianz in den Daten erklärt. PCA funktioniert durch Analysieren von Daten, die mehrere Variablen enthalten. Es sucht nach Korrelationen zwischen den Variablen und bestimmt die Kombination von Werten, die die Unterschiede in den Ergebnissen am besten erfassen. Diese kombinierten Featurewerte werden verwendet, um einen kompakteren Featurebereich zu erstellen, der als Prinzipalkomponenten bezeichnet wird.

Anomalieerkennung umfasst viele wichtige Aufgaben im maschinellen Lernen:

  • Identifizieren von Transaktionen, die potenziell betrügerisch sind.
  • Lernmuster, die darauf hinweisen, dass ein Netzwerkeinbruch aufgetreten ist.
  • Finden anomaler Patientencluster.
  • Überprüfen von Werten, die in ein System eingegeben wurden.

Da Anomalien definitionlich seltene Ereignisse sind, kann es schwierig sein, eine repräsentative Stichprobe von Daten zu sammeln, die für die Modellierung verwendet werden. Die in dieser Kategorie enthaltenen Algorithmen wurden speziell entwickelt, um die wichtigsten Herausforderungen des Aufbaus und Trainingsmodells mithilfe von ungleichgewichtierten Datensätzen zu bewältigen.

Anomalie-Erkennungstrainer

Sie können ein Anomalieerkennungsmodell mit dem folgenden Algorithmus trainieren:

Eingaben und Ausgaben für die Anomalieerkennung

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

Dieser Trainer gibt Folgendes aus:

Ausgabename type Beschreibung
Score Single Der nicht-negative, unbegrenzte Score, der durch das Anomalieerkennungsmodell berechnet wurde.
PredictedLabel Boolean true, wenn die Eingabe eine Anomalie ist, oder false, wenn sie es nicht ist.

Rangordnung

Eine Rangfolgenaufgabe erstellt für einen Satz bezeichneter Beispiele eine Rangfolge. Dieser Beispielsatz besteht aus Instanzengruppen, die mit einem bestimmten Kriterium bewertet werden können. Die Bewertungsbezeichnungen 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-Rangfolgenlernmodule basieren auf einer Machine-Learning-Rangfolge.

Trainingsalgorithmen für Rangfolge

Sie können ein Bewertungsmodell mit den 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 angeben. 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.

Dieser Trainer gibt Folgendes aus:

Ausgabename type Beschreibung
Score Single Die unlimitierte Punktzahl, die vom Modell berechnet wurde, um die Vorhersage zu erstellen.

Empfehlung

Eine Empfehlungsaufgabe ermöglicht die Erstellung einer Liste der empfohlenen Produkte oder Dienstleistungen. ML.NET verwendet für Empfehlungen Matrixfaktorisierung (MF), einen Algorithmus für kollaboratives Filtern, wenn Ihr Katalog Verlaufsproduktbewertungs-Daten enthält. Beispielsweise verfügen Sie über historische Filmbewertungsdaten für Ihre Benutzer und möchten andere Filme empfehlen, die sie wahrscheinlich als Nächstes ansehen.

Trainingsalgorithmen für Empfehlung

Sie können ein Empfehlungsmodell mit dem folgenden Algorithmus trainieren:

Prognose

Der Prognosevorgang verwendet vergangene Zeitreihendaten, um Vorhersagen zum zukünftigen Verhalten zu erstellen. Szenarien, die für die Prognose gelten, umfassen Wettervorhersagen, saisonale Umsatzvorhersagen und vorausschauende Wartung.

Trainer für die Aufgabe „Vorhersage“

Sie können ein Prognosemodell mit dem folgenden Algorithmus trainieren:

ForecastBySsa

Objekterkennung

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

  • Erkennen von Autos, Schildern oder Personen auf Bildern einer Straße.
  • Erkennen von Mängeln auf Bildern von Produkten.
  • Erkennen von Beunruhigungsbereichen auf Röntgenbildern.

Die Schulung zum Objekterkennungsmodell ist derzeit nur in Modell-Generator mit Azure Machine Learning verfügbar.