Auswählen von Algorithmen für Azure Machine Learning
Wenn Sie sich fragen, welcher Machine Learning-Algorithmus verwendet werden soll, hängt die Antwort in erster Linie von zwei Aspekten Ihres Data-Science-Szenarios ab:
Was möchten Sie mit Ihren Daten tun? Wie genau lautet die geschäftliche Frage, die Sie beantworten möchten, indem Sie aus Ihren bisherigen Daten lernen?
Welche Anforderungen gelten für Ihr Data Science-Szenario? Welche Features, Genauigkeit, Trainingsdauer, Linearität und Parameter unterstützt Ihre Lösung?
Hinweis
Der Azure Machine Learning-Designer unterstützt zwei Komponententypen: klassische vorkonfigurierte Komponenten (v1) und benutzerdefinierte Komponenten (v2). Diese beiden Komponententypen sind NICHT kompatibel.
Klassische vorkonfigurierte Komponenten sind vor allem für die Datenverarbeitung und für herkömmliche Machine Learning-Aufgaben wie Regression und Klassifizierung vorgesehen. Dieser Komponententyp wird weiterhin unterstützt, aber es werden keine neuen Komponenten hinzugefügt.
Benutzerdefinierte Komponenten ermöglichen es Ihnen, Ihren eigenen Code als Komponente bereitzustellen. Sie unterstützen die arbeitsbereichsübergreifende Freigabe und die reibungslose Dokumenterstellung über Studio-, CLI v2- und SDK v2-Schnittstellen.
Für neue Projekte wird dringend empfohlen, benutzerdefinierte Komponenten zu verwenden, die mit AzureML V2 kompatibel sind und weiterhin neue Updates erhalten.
Dieser Artikel gilt für klassische vordefinierte Komponenten und ist nicht mit CLI v2 und SDK v2 kompatibel.
Azure Machine Learning – Cheat Sheet für Algorithmen
Der Spickzettel zu Azure Machine Learning-Algorithmen hilft Ihnen bei der ersten Überlegung: Was möchten Sie mit Ihren Daten tun? Suchen Sie auf dem Spickzettel nach der Aufgabe, die Sie erledigen möchten, und suchen Sie dann einen Azure Machine Learning-Designeralgorithmus für die Predictive-Analytics-Lösung.
Hinweis
Sie können den Spickzettel für Machine Learning-Algorithmen herunterladen.
Der Designer bietet ein umfassendes Portfolio an Algorithmen, z. B. Multiklassen-Entscheidungswald, Empfehlungssysteme, Regression mit neuronalen Netzwerken, Mehrklassiges neuronales Netzwerk und k-Means-Algorithmus. Jeder Algorithmus ist speziell auf eine andere Art von Machine Learning-Problem ausgelegt. Eine vollständige Liste finden Sie in der Algorithmus- und Komponentenreferenz, zusammen mit einer Dokumentation über die Funktionsweise der einzelnen Algorithmen und die Einstellung der Parameter zur Optimierung des Algorithmus.
Beachten Sie zusammen mit diesem Leitfaden die sonstigen Anforderungen bei der Auswahl eines Machine Learning-Algorithmus. Im Folgenden sind zusätzliche Faktoren zu berücksichtigen, z. B. die Genauigkeit, die Trainingszeit, die Linearität, die Anzahl der Parameter und die Anzahl der Features.
Vergleich von Algorithmen für maschinelles Lernen
Einige Algorithmen treffen bestimmte Annahmen über die Struktur der Daten oder der gewünschten Ergebnisse. Wenn Sie einen finden, der Ihren Bedürfnissen entspricht, kann Ihnen dieser genauere Vorhersagen oder kürzere Trainingsdauern liefern.
In der folgenden Tabelle werden einige der wichtigsten Merkmale von Algorithmen aus den Familien Klassifizierung, Regression und Clustering zusammengefasst:
Algorithmus | Genauigkeit | Trainingsdauer | Linearität | Parameter | Hinweise |
---|---|---|---|---|---|
Familie Klassifizierung | |||||
Logistische Regression mit zwei Klassen | Gut | Schnell | Ja | 4 | |
Entscheidungswald mit zwei Klassen | Hervorragend | Moderat | Nein | 5 | Bei diesem Algorithmus kommt es zu längeren Bewertungszeiten. Es wird empfohlen, nicht mit One-vs-All-Multiklasse zu arbeiten, da das Sperren von Threads beim Akkumulieren von Entscheidungsstrukturvorhersagen zu längeren Bewertungszeiten führt. |
Verstärkte Entscheidungsstruktur mit zwei Klassen | Hervorragend | Moderat | Nein | 6 | Hoher Speicherbedarf |
Neuronales Netz mit zwei Klassen | Gut | Moderat | Nein | 8 | |
Gemitteltes Perzeptron mit zwei Klassen | Gut | Moderat | Ja | 4 | |
Support Vector Machine mit zwei Klassen | Gut | Schnell | Ja | 5 | Für große Merkmalssätze geeignet |
Logistische Regression mit mehreren Klassen | Gut | Schnell | Ja | 4 | |
Entscheidungswald mit mehreren Klassen | Hervorragend | Moderat | Nein | 5 | Bei diesem Algorithmus kommt es zu längeren Bewertungszeiten. |
Verstärkte Entscheidungsstruktur mit mehreren Klassen | Hervorragend | Moderat | Nein | 6 | Verbessert tendenziell die Genauigkeit, allerdings mit einem geringen Risiko einer geringeren Abdeckung |
Neuronales Netz mit mehreren Klassen | Gut | Moderat | Nein | 8 | |
One-vs-All-Klassifizierung mit mehreren Klassen | - | - | - | - | Siehe die Eigenschaften der ausgewählten zweiklassigen Methode |
Familie Regression | |||||
Lineare Regression | Gut | Schnell | Ja | 4 | |
Regression mit Entscheidungswald | Hervorragend | Moderat | Nein | 5 | |
Regression mit verstärkter Entscheidungsstruktur | Hervorragend | Moderat | Nein | 6 | Hoher Speicherbedarf |
Regression mit neuronalem Netz | Gut | Moderat | Nein | 8 | |
Familie Clustering | |||||
k-Means-Clustering | Hervorragend | Moderat | Ja | 8 | Clusteringalgorithmus |
Anforderungen für Data-Science-Szenarios
Sobald Sie wissen, wie Sie mit Ihren Daten verfahren möchten, müssen Sie zusätzliche Anforderungen für Ihr Data-Science-Szenario festlegen.
Treffen Sie Entscheidungen und möglicherweise Kompromisse für die folgenden Anforderungen:
- Genauigkeit
- Trainingsdauer
- Linearität
- Anzahl von Parametern
- Anzahl von Merkmalen
Genauigkeit
Die Genauigkeit beim maschinellen Lernen misst die Wirksamkeit eines Modells als Anteil der tatsächlichen Ergebnisse an der Gesamtzahl der Fälle. Im Designer berechnet die Komponente Modell bewerten eine Reihe von standardisierten Bewertungsmetriken. Sie können diese Komponente verwenden, um die Genauigkeit eines trainierten Modells zu messen.
Eine so genaue Antwort wie möglich zu erhalten, ist nicht immer erforderlich. Manchmal ist ein Näherungswert ausreichend, je nachdem, wofür Sie ihn verwenden möchten. Wenn dies der Fall ist, können Sie die Verarbeitungszeit möglicherweise erheblich verringern, indem Sie stärker Näherungsmethoden verwenden. Näherungsmethoden neigen natürlich auch dazu, eine Überanpassung zu vermeiden.
Es gibt drei Möglichkeiten, die Komponente Modell auswerten zu verwenden:
- Generieren Sie Ergebnisse zu Ihren Trainingsdaten, um das Modell auszuwerten.
- Generieren Sie Ergebnisse für das Modell, vergleichen Sie diese aber mit Ergebnissen für ein reserviertes Testdataset.
- Vergleichen Sie die Ergebnisse für zwei verschiedene, aber zusammengehörige Modelle unter Verwendung desselben Datasets.
Eine vollständige Liste der Metriken und Ansätze, die Sie zur Bewertung der Genauigkeit von Modellen des maschinellen Lernens verwenden können, finden Sie unter Modellkomponente auswerten.
Trainingsdauer
Beim beaufsichtigten Lernen bedeutet Training die Verwendung historischer Daten zur Erstellung eines Machine Learning-Modells, das Fehler minimiert. Die Anzahl der Minuten oder Stunden, die zum Trainieren eines Modells notwendig sind, variieren sehr stark von Algorithmus zu Algorithmus. Die Trainingsdauer ist oft eng an die Genauigkeit gebunden. Das eine geht in der Regel mit dem anderen einher.
Darüber hinaus reagieren einige Algorithmen empfindlicher auf die Anzahl der Datenpunkte als andere. Aufgrund der vorliegenden zeitlichen Begrenzung könnten Sie einen bestimmten Algorithmus auswählen, insbesondere wenn das Dataset groß ist.
Im Designer werden Machine Learning-Modelle in der Regel in einem dreistufigen Prozess erstellt und verwendet:
Konfigurieren eines Modells, indem Sie einen bestimmten Algorithmustyp auswählen und dann seine Parameter oder Hyperparameter definieren.
Stellen Sie ein beschriftetes Dataset bereit, das mit dem Algorithmus kompatibel ist. Verbinden Sie sowohl die Daten als auch das Modell mit der Komponente Modell trainieren.
Nach Abschluss des Trainings verwenden Sie das trainierte Modell mit einer der Score-Komponenten, um Vorhersagen für neue Daten zu treffen.
Linearität
Linearität in der Statistik und beim maschinellen Lernen bedeutet, dass es eine lineare Beziehung zwischen einer Variablen und einer Konstanten in Ihrem Dataset besteht. Lineare Klassifizierungsalgorithmen gehen z. B. davon aus, dass sich Klassen durch einer gerade Linie (oder deren höher dimensionale Entsprechung) trennen lassen.
Viele Algorithmen für maschinelles Lernen nutzen Linearität. Im Azure Machine Learning-Designer umfassen sie Folgendes:
- Logistische Regression mit mehreren Klassen
- Logistische Regression mit zwei Klassen
- Support Vector Machines
Linear Regressionsalgorithmen gehen davon aus, dass Datentrends einer geraden Linie folgen. Diese Annahme ist für einige Probleme durchaus angemessen, aber für andere verringert sie die Genauigkeit. Trotz ihrer Nachteile sind lineare Algorithmen als erste Strategie beliebt. Sie sind tendenziell algorithmisch einfach und lassen sich schnell trainieren.
Nicht lineare Klassengrenze: Die Verwendung eines linearen Klassifizierungsalgorithmus würde zu einer verringerten Genauigkeit führen.
Daten mit einem nicht linearen Trend: Die Verwendung einer linearen Regressionsmethode würde wesentlich höhere Fehler erzeugen als nötig.
Anzahl von Parametern
Parameter sind die Knöpfe, an denen eine wissenschaftliche Fachkraft für Daten drehen kann, wenn sie einen Algorithmus einrichtet. Es handelt sich dabei um Zahlen, die das Verhalten des Algorithmus beeinflussen, z. B. Fehlertoleranz oder Anzahl von Iterationen oder Optionen zwischen Varianten der Verhaltensweisen des Algorithmus. Die Trainingsdauer und die Genauigkeit des Algorithmus können beim Finden der richtigen Einstellungen manchmal empfindlich reagieren. Normalerweise erfordern Algorithmen mit vielen Parametern die meisten Testversuche, um eine gute Kombination zu finden.
Alternativ gibt es die KomponenteModellhyperparameter optimieren im Designer. Das Ziel dieser Komponente besteht darin, die optimalen Hyperparameter für ein Machine Learning-Modell zu ermitteln. Die Komponente erstellt und testet mehrere Modelle unter Verwendung verschiedener Kombinationen von Einstellungen. Die Metriken werden über alle Modelle hinweg verglichen, um die Kombinationen der Einstellungen zu erhalten.
Zwar stellt dies eine hervorragende Möglichkeit dar, um sicherzustellen, dass Sie den gesamten Parameterbereich abgedeckt haben, doch die Zeit, die zum Trainieren eines Modells erforderlich ist, steigt exponentiell mit der Anzahl der Parameter. Der Vorteil ist, dass das Vorhandensein vieler Parameter normalerweise darauf hindeutet, dass ein Algorithmus über größere Flexibilität verfügt. Er erreicht oft eine hervorragende Genauigkeit, vorausgesetzt, dass Sie die richtige Kombination von Parametereinstellungen finden.
Anzahl von Merkmalen
Beim maschinellen Lernen ist ein Feature eine quantifizierbare Variable des Phänomens, das Sie zu analysieren versuchen. Bei bestimmten Datentypen kann die Anzahl der Merkmale im Vergleich zur Anzahl der Datenpunkte sehr groß sein. Dies ist häufig der Fall bei Genetik- oder Textdaten.
Eine große Anzahl von Merkmalen kann bei einigen Lernalgorithmen dazu führen, dass sie sich verzetteln, was impraktikabel lange Trainingsdauern nach sich zieht. Vektorcomputer unterstützen eignen sich besonders gut für Szenarios mit einer hohen Anzahl von Features. Aus diesem Grund wurden sie in vielen Anwendungen (von der Informationsbeschaffung bis zur Text- und Bildklassifizierung) eingesetzt. Support Vector Machines können für sowohl Klassifizierungs-als auch Regressionsaufgaben verwendet werden.
„Feature Selection“ (Auswahl von Merkmalen) bezieht sich auf die Anwendung statistischer Tests auf Eingaben, wenn eine Ausgabe angegeben ist. Das Ziel besteht in der Bestimmung der Spalten, die für die Ausgabe aussagekräftiger sind. Die Komponente Filterbasierte Featureauswahl im Designer bietet mehrere Featureauswahlalgorithmen. Die Komponente umfasst Korrelationsmethoden wie die Pearson-Korrelation und Chi-Quadrat-Werte.
Sie können auch die Komponente Permutation Feature Importance verwenden, um einen Satz von Feature Importance Scores für Ihren Datensatz zu berechnen. Sie können dann diese Bewertungen nutzen, um die besten Features zur Verwendung in einem Modell zu bestimmen.