Regression bei verstärkter Entscheidungsstruktur
Wichtig
Der Support für Machine Learning Studio (klassisch) endet am 31. August 2024. Es wird empfohlen, bis zu diesem Datum auf Azure Machine Learning umzustellen.
Ab dem 1. Dezember 2021 können Sie keine neuen Ressourcen in Machine Learning Studio (klassisch) mehr erstellen. Bis zum 31. August 2024 können Sie die vorhandenen Ressourcen in Machine Learning Studio (klassisch) weiterhin verwenden.
- Siehe Migrieren zu Azure Machine Learning
- Weitere Informationen zu Azure Machine Learning.
Die Dokumentation zu ML Studio (klassisch) wird nicht mehr fortgeführt und kann künftig nicht mehr aktualisiert werden.
Erstellt ein Regressionsmodell mithilfe des verstärkten Entscheidungsbaumalgorithmus
Kategorie: Machine Learning/Initialize Model/Regression
Hinweis
Gilt für: Machine Learning Studio (klassisch)
Ähnliche Drag & Drop-Module sind im Azure Machine Learning-Designer verfügbar.
Modulübersicht
In diesem Artikel wird beschrieben, wie Sie das Modul Boosted Decision Tree Regression in Machine Learning Studio (klassisch) verwenden, um mithilfe von Boosting ein Ensemble von Regressionsstrukturen zu erstellen. Verstärkung bedeutet, dass jeder Baum von früheren Bäumen abhängig ist. Der Algorithmus lernt durch Anpassung der übrigen, früher trainierten Bäume. Daher führt die Verstärkung in einem Ensemble von Entscheidungsbäumen meist zu höherer Genauigkeit, allerdings mit dem minimalen Risiko einer geringeren Abdeckung.
Diese Regressionsmethode entspricht einer überwachten Lernmethode, die folglich ein bezeichnetes Dataset erfordert. Die Bezeichnungsspalte muss numerische Werte enthalten.
Hinweis
Verwenden Sie dieses Modul nur mit Datasets, die numerische Variablen enthalten.
Nachdem Sie das Modell definiert haben, trainieren Sie es mithilfe der Module Train Model (Modell trainieren) oder Tune Model Hyperparameters (Optimieren von Modell hyperparameters ).
Tipp
Möchten Sie mehr über die erstellten Bäume erfahren? Nachdem das Modell trainiert wurde, klicken Sie mit der rechten Maustaste auf die Ausgabe des Moduls Train Model (oder Tune Model Hyperparameters module), und wählen Sie Visualize (Visualisieren) aus, um die Struktur zu sehen, die bei jeder Iteration erstellt wurde. Sie können Detailinformationen zu den Teilen jedes Baums sowie die Regeln für die einzelnen Knoten anzeigen.
Weitere Informationen zu verstärkten Regressionsbäumen
Verstärkung zählt neben Bagging, zufälligen Gesamtstrukturen usw. zu den klassischen Methoden für die Erstellung von Ensemblemodellen. In Machine Learning Studio (klassisch) verwenden Boosted Decision Trees eine effiziente Implementierung des MART Gradient Boosting-Algorithmus. Gradient Boosting ist ein Machine Learning-Verfahren für Regressionsprobleme. Die einzelnen Regressionsbäume werden schrittweise erstellt, wobei eine vordefinierte Verlustfunktion die Fehler in den einzelnen Schritten misst und diese im nächsten Schritt korrigiert. Daher ist das Vorhersagemodell tatsächlich ein Ensemble schwächerer Vorhersagemodelle.
Bei Regressionsproblemen dient die Verstärkung dazu, eine Reihe von Bäumen schrittweise zu erstellen. Anschließend wird der optimale Baum mithilfe einer beliebig differenzierbaren Verlustfunktion ausgewählt.
Weitere Informationen finden Sie in diesen Artikeln:
https://wikipedia.org/wiki/Gradient_boosting#Gradient_tree_boosting
Dieser Wikipedia-Artikel zum Thema Gradient Boosting bietet Hintergrundinformationen zu verstärkten Bäumen.
https://research.microsoft.com/apps/pubs/default.aspx?id=132652
Microsoft Research: From RankNet to LambdaRank to LambdaMART: An Overview. Von J.C. Burges.
Die Gradient Boosting-Methode kann auch für Klassifizierungsprobleme verwendet werden, um diese mit einer geeigneten Verlustfunktion auf ein Regressionsproblem herunterzustufen. Weitere Informationen zur Implementierung verstärkter Entscheidungsbäume bei Klassifizierungsaufgaben finden Sie unter Verstärkter Entscheidungsbaum mit zwei Klassen.
Gewusst wie: Konfigurieren von „Boosted Decision Tree Regression“
Fügen Sie Ihrem Experiment das Modul Boosted Decision Tree hinzu. Sie finden dieses Modul unter Machine Learning, Initialize (Initialisieren) in der Kategorie Regression.
Geben Sie an, wie das Modell trainiert werden soll, indem Sie die Option Create trainer mode (Trainermodus erstellen) aktivieren.
Single Parameter (Einzelner Parameter): Wählen Sie diese Option, wenn Sie wissen, wie Sie das Modell konfigurieren möchten, und geben Sie einen bestimmten Satz von Werten als Argumente an.
Parameter Range (Parameterbereich): Wählen Sie diese Option, wenn Sie nicht sicher sind, welche Parameter am besten geeignet sind, und einen Parametersweep ausführen möchten. Wählen Sie einen Wertebereich aus, über den iteriert werden soll. Anschließend iteriert das Modul Tune Model Hyperparameters über alle möglichen Kombinationen der von Ihnen angegebenen Einstellungen, um die Hyperparameter zur Erzielung der optimalen Ergebnisse zu bestimmen.
Maximum number of leaves per tree (Maximale Anzahl der Blätter pro Baum): Geben Sie die maximale Anzahl von Endknoten (Blättern) an, die in einem Baum erstellt werden können.
Eine Erhöhung dieses Werts führt zu einem potenziell größeren Baum und zu einer höheren Genauigkeit, kann aber auch eine Überanpassung und eine längere Trainingsdauer zur Folge haben.
Minimum number of samples per leaf node (Minimale Anzahl der Stichproben pro Blattknoten): Geben Sie die minimale Anzahl von Fällen an, die zum Erstellen eines Endknotens (Blatts) in einem Baum erforderlich sind.
Wenn Sie diesen Wert heraufsetzen, erhöht sich der Schwellenwert für die Erstellung neuer Regeln. Bei Verwendung des Standardwerts „1“ reicht für die Erstellung einer neuen Regel beispielsweise bereits ein einzelner Fall aus. Wenn Sie den Wert auf „5“ erhöhen, müssen die Trainingsdaten mindestens fünf Fälle enthalten, die die gleichen Bedingungen erfüllen.
Learning rate (Lernrate): Geben Sie eine Zahl zwischen 0 und 1 ein, um die Schrittgröße beim Lernen zu definieren. Die Lernrate bestimmt, wie schnell bzw. langsam sich das Lernmodell der optimalen Lösung annähert. Ist die Schrittgröße zu groß, wird die optimale Lösung u. U. verfehlt. Ist die Schrittgröße zu klein, dauert die Annäherung an die beste Lösung länger.
Number of trees constructed: (Anzahl der erstellten Bäume) Geben Sie die Gesamtzahl von Entscheidungsbäumen an, die im Ensemble erstellt werden sollen. Mit einer höheren Anzahl von Entscheidungsbäumen erzielen Sie u. U. eine bessere Abdeckung, allerdings verlängert sich dadurch auch die Trainingsdauer.
Dieser Wert steuert auch die Anzahl von Bäumen, die bei der Visualisierung des trainierten Modells angezeigt werden. Wenn Sie eine Ingle-Struktur sehen oder drucken möchten, können Sie den Wert auf 1 festlegen. Dies bedeutet jedoch, dass nur eine Struktur erstellt wird (die Struktur mit dem anfänglichen Parametersatz), und es werden keine weiteren Iterationen ausgeführt.
Random number seed (Zufälliger Startwert): Geben Sie eine optionale, nicht negative ganze Zahl als zufälligen Startwert an. Die Angabe eines Startwerts gewährleistet Reproduzierbarkeit in verschiedenen Ausführungen, die auf den gleichen Daten und Parametern basieren.
Der zufällige Startwert ist standardmäßig auf „0“ festgelegt, was bedeutet, dass der ursprüngliche Startwert von der Systemuhr abgerufen wird.
Unbekannte Kategorieebenen zulassen: Wählen Sie diese Option aus, um eine Gruppe für unbekannte Werte in den Trainings- und Validierungssätzen zu erstellen. Wenn Sie diese Option deaktivieren, akzeptiert das Modell nur Werte, die in den Trainingsdaten enthalten sind. Das Modell ist bei bekannten Werten u. U. weniger genau, liefert dafür jedoch bessere Vorhersagen für neue (unbekannte) Werte.
Fügen Sie ein Trainingsdataset und eines der Trainingsmodule hinzu:
Wenn Sie die Option Create trainer mode (Trainermodus erstellen) auf Single Parameter (Einzelner Parameter) festlegen, müssen Sie das Modul Train Model (Modell trainieren) verwenden.
Wenn Sie Create trainer mode (Trainermodus erstellen) auf Parameter Range (Parameterbereich) festlegen, verwenden Sie das Modul Tune Model Hyperparameters (Abstimmen der Hyperparameter des Modells).
Hinweis
Wenn Sie einen Parameterbereich an Train Model übergeben, wird nur der erste Wert in der Parameterbereichsliste verwendet.
Wenn Sie eine einzelne Reihe bestimmter Parameterwerte an das Modul Tune Model Hyperparameters übergeben und ein Bereich von Einstellungen für jeden Parameter erwartet wird, werden die Werte ignoriert und stattdessen die Standardwerte für den Learner verwendet.
Wenn Sie die Option Parameterbereich auswählen und einen einzelnen Wert für einen parameter eingeben, wird dieser einzelne Wert während des Sweeps verwendet, auch wenn sich andere Parameter über einen Wertebereich hinweg ändern.
Führen Sie das Experiment aus.
Ergebnisse
Nach Abschluss des Trainings:
Um die Struktur zu sehen, die bei jeder Iteration erstellt wurde, klicken Sie mit der rechten Maustaste auf Train Model module (Modell trainieren), und wählen Sie Trained model (Trainiertes Modell) aus, um es zu visualisieren. Wenn Sie Tune Model Hyperparameters verwenden, klicken Sie mit der rechten Maustaste auf das Modul, und wählen Sie Trainiertes bestes Modell aus , um das beste Modell zu visualisieren.
Klicken Sie auf den Baum, um Detailinformationen zu den Teilen sowie Regeln für die einzelnen Knoten anzuzeigen.
Wenn Sie das Modell zur Bewertung verwenden möchten, verbinden Sie es mit Score Model (Modell bewerten), um Werte für neue Eingabebeispiele vorherzusagen.
Um eine Momentaufnahme des trainierten Modells zu speichern, klicken Sie mit der rechten Maustaste auf die Ausgabe Trained model (Trainiertes Modell) des Trainingsmoduls, und wählen Sie Save As (Speichern unter) aus. Die Kopie des trainierten Modells, das Sie speichern, wird bei nachfolgenden Durchläufen des Experiments nicht aktualisiert.
Beispiele
Beispiele für die Verwendung verstärkter Strukturen beim maschinellen Lernen finden Sie in den folgenden Azure KI-Katalog:
Bedarfsschätzung: Verwendet Boosted Decision Tree Regression , um die Anzahl der Verleihe für einen bestimmten Zeitraum vorherzusagen.
Twitter-Stimmungsanalyse: Verwendet Regression, um eine vorhergesagte Bewertung zu generieren.
Technische Hinweise
Dieser Abschnitt enthält Implementierungsdetails, Tipps und Antworten auf häufig gestellte Fragen.
Tipp
Entscheidungsbäume führen im Allgemeinen zu besseren Ergebnissen, wenn die Merkmale in gewissem Zusammenhang stehen. Wenn Merkmale ein hohes Maß an Entropie aufweisen (also nicht in Zusammenhang stehen), ist ihr Transformationsgehalt gering bzw. nicht vorhanden, sodass ihre Anordnung in einem Baum keine hohe prädiktive Bedeutung liefert.
Details zur Implementierung
Ein Ensemble von Bäumen wird erstellt, indem bei jedem Schritt ein Regressionsbaum berechnet wird, der eine Approximation des Gradienten der Verlustfunktion erzeugt. Anschließend wird er zusammen mit Koeffizienten, die den Verlust des neuen Baums minimieren, dem vorherigen Baum hinzugefügt. Die von MART für eine bestimmte Instanz erzeugte Ausgabe des Ensembles ist die Summe der Ausgaben aller Bäume.
Bei einem binären Klassifizierungsproblem wird die Ausgabe mithilfe einer Art Kalibrierung in Wahrscheinlichkeit konvertiert.
Bei Regressionsproblemen entspricht die Ausgabe dem vorhergesagten Wert der Funktion.
Bei Rangfolgeproblemen werden die Instanzen nach dem Ausgabewert des Ensembles geordnet.
Modulparameter
Name | Range | type | Standard | Beschreibung |
---|---|---|---|---|
Maximum number of leaves per tree | >=1 | Integer | 20 | Geben Sie die maximale Anzahl der Blätter pro Baum an. |
Minimum number of samples per leaf node | >=1 | Integer | 10 | Geben Sie die Mindestanzahl der Fälle an, die für die Bildung eines Blattknotens erforderlich sind. |
Learning rate (Lernrate) | [double.Epsilon;1.0] | Float | 0.2 | Geben Sie die anfängliche Lerngeschwindigkeit an. |
Total number of trees constructed | >=1 | Integer | 100 | Geben Sie die maximale Anzahl der Bäume an, die während des Trainings erstellt werden können. |
Random number seed | any | Integer | Geben Sie einen Ausgangswert für den vom Modell verwendeten Zufallszahlengenerator an. Lassen Sie das Feld leer, um die Standardeinstellung zu verwenden. | |
Allow unknown categorical levels | any | Boolean | true | Bei "True" wird für jede Kategoriespalte eine zusätzliche Ebene erstellt. Ebenen im Testdataset, die im Trainingsdataset nicht verfügbar sind, werden dieser zusätzlichen Ebene zugeordnet. |
Ausgaben
Name | Type | BESCHREIBUNG |
---|---|---|
Untrainiertes Modell | ILearner-Schnittstelle | Ein untrainiertes Regressionsmodell |