Two-Class Boosted Decision Tree
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 einen binären Klassifizierer mit einem verstärkten Entscheidungsbaumalgorithmus
Kategorie: Machine Learning/Modell initialisieren/Klassifizierung
Hinweis
Gilt nur 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 Two-Class Boosted Decision Tree in Machine Learning Studio (klassisch) verwenden, um ein Machine Learning-Modell zu erstellen, das auf dem Boosted Decision Trees-Algorithmus basiert.
Ein Boosted Decision Tree ist eine Ensemble-basierte Lernmethode. Die zweite Struktur korrigiert dabei die Fehler der ersten Struktur, die dritte Struktur korrigiert die Fehler der ersten und zweiten Struktur und so weiter. Vorhersagen basieren auf dem Strukturensemble, das die Vorhersage generiert. Weitere technische Details finden Sie im Abschnitt "Research " dieses Artikels.
Mit ordnungsgemäß konfigurierten Boosted Decision Trees lässt sich für gewöhnlich am einfachsten eine optimale Leistung bei einem breiten Spektrum von Machine Learning-Aufgaben erzielen. Sie zählen allerdings auch zu den arbeitsspeicherintensiveren Lernmodellen, und bei der aktuellen Implementierung wird alles im Arbeitsspeicher gespeichert. Daher kann ein Boosted Decision Tree-Modell die sehr großen Datasets, die einige lineare Lerner verarbeiten können, möglicherweise nicht verarbeiten.
Konfigurieren Two-Class Boosted Decision Tree
Dieses Modul erstellt ein untrainiertes Klassifizierungsmodell. Da es sich bei der Klassifizierung um eine beaufsichtigte Lernmethode handelt, benötigen Sie zum Trainieren des Modells ein mit Tags versehenes Dataset, das eine Bezeichnungsspalte mit einem Wert für alle Zeilen enthält.
Sie können diese Art von Modell mithilfe der Module Train Model oder Tune Model Hyperparameters trainieren.
Fügen Sie in Machine Learning Studio (klassisch) ihrem Experiment das Modul Boosted Decision Tree hinzu.
Geben Sie an, wie das Modell trainiert werden soll, indem Sie die Option Create trainer mode (Trainermodus erstellen) aktivieren.
Single Parameter (Einzelner Parameter): Wenn Sie wissen, wie Sie das Modell konfigurieren möchten, können Sie einen bestimmten Satz von Werten als Argumente angeben.
Parameter Range (Parameterbereich): Wenn Sie sich hinsichtlich der besten Parameter nicht sicher sind, können Sie optimale Parameter mithilfe des Moduls Tune Model Hyperparameters finden. Sie geben einen Wertebereich an, woraufhin das Training über mehrere Einstellungskombinationen iteriert, um die Wertekombination zu bestimmen, die das beste Ergebnis liefert.
Geben Sie unter Maximum number of leaves per tree (Maximale Anzahl von Blättern pro Struktur) die maximale Anzahl von Endknoten (Blätter) an, die in einer Struktur 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.
Geben Sie unter Minimum number of samples per leaf node (Minimale Anzahl von Stichproben pro Blattknoten) die Anzahl von Fällen an, die zum Erstellen eines Endknotens (Blatt) in einer Struktur 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.
Geben Sie unter Learning rate (Lernrate) 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.
Geben Sie unter Number of trees constructed (Anzahl erstellter Strukturen) die Gesamtzahl von Entscheidungsstrukturen an, die im Ensemble erstellt werden sollen. Mit einer höheren Anzahl von Entscheidungsbäumen erzielen Sie unter Umständen eine bessere Abdeckung, allerdings verlängert sich dadurch die Trainingsdauer.
Dieser Wert steuert auch die Anzahl von Bäumen, die bei der Visualisierung des trainierten Modells angezeigt werden. Wenn Sie eine einzelne Struktur anzeigen oder ausgeben möchten, legen Sie den Wert auf „1“ fest. In diesem Fall wird allerdings auch nur eine einzelne Struktur (die Struktur mit dem anfänglichen Parametersatz) generiert, und es finden keine weiteren Iterationen statt.
Geben Sie unter Random number seed (Zufällig gewählter Startwert) eine nicht negative ganze Zahl ein, die als zufälliger Startwert verwendet werden soll. Die Angabe eines Startwerts gewährleistet Reproduzierbarkeit in verschiedenen Ausführungen, die auf den gleichen Daten und Parametern basieren.
Der zufällig gewählte Startwert ist standardmäßig auf „0“ festgelegt, was bedeutet, dass der ursprüngliche Startwert von der Systemuhr abgerufen wird. Bei nachfolgenden Ausführungen wird ein zufällig gewählter Startwert verwendet, was zu abweichenden Ergebnissen führen kann.
Wählen Sie die Option Unbekannte Kategorische Ebenen zulassen 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.
Wenn Sie unbekannte Werte zulassen, ist das Modell möglicherweise weniger präzise für bekannte Werte, kann aber wahrscheinlich bessere Vorhersagen für neue (unbekannte) Werte liefern.
Trainieren des Modells.
Wenn Sie Create trainer mode (Trainermodus erstellen) auf Single Parameter (Einzelner Parameter) festlegen, müssen Sie ein mit Tags versehenes Dataset und das Modul Train Model (Modell trainieren) verbinden.
Wenn Sie Create trainer mode (Trainermodus erstellen) auf Parameter Range (Parameterbereich) festlegen, verbinden Sie ein mit Tags versehenes Dataset, und trainieren Sie das Modell mithilfe von Tune Model Hyperparameters.
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 Parameter Range (Parameterbereich) auswählen und einen einzelnen Wert für einen beliebigen Parameter eingeben, wird dieser angegebene einzelne Wert während des gesamten Löschvorgangs verwendet, auch wenn andere Parameter in einem Wertebereich geändert werden.
Ergebnisse
Nach Abschluss des Trainings:
Um die Struktur anzuzeigen, die bei jeder Iteration erstellt wurde, klicken Sie mit der rechten Maustaste auf Train Model module (Modell trainieren ), und wählen Sie 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.
Beispiele
Beispiele für die Verwendung verstärkter Entscheidungsstrukturen beim maschinellen Lernen finden Sie im Azure KI-Katalog:
Direktes Marketing: Verwendet den Two-Class Boosted Decision Tree-Algorithmus , um die Kundenfreundlichkeit vorherzusagen.
Vorhersage von Flugverspätungen: In diesem Beispiel wird der Two-Class Boosted Decision Tree-Algorithmus verwendet, um zu bestimmen, ob ein Flug wahrscheinlich verzögert wird.
Kreditkartenrisiko: In diesem Beispiel wird der Two-Class Boosted Decision Tree-Algorithmus verwendet, um Risiken vorherzusagen.
Technische Hinweise
Dieser Abschnitt enthält Implementierungsdetails und häufig gestellte Fragen.
Verwendungstipps
Um ein Boosted Decision Tree-Modell zu trainieren, müssen Sie mehrere Dateninstanzen bereitstellen. Während des Trainingsprozesses wird ein Fehler generiert, wenn das Dataset zu wenige Zeilen enthält.
Wenn Ihre Daten Werte fehlen, müssen Sie Indikatoren für die Features hinzufügen.
Verstärkte Entscheidungsbäume führen im Allgemeinen zu besseren Ergebnissen, wenn die Merkmale in gewissem Zusammenhang stehen. Wenn Features ein hohes Maß an Entropie aufweisen (d. h., sie sind nicht miteinander verknüpft), teilen sie nur wenige oder keine gegenseitigen Informationen, und die Sortierung in einer Struktur hat keine große Vorhersage signifikanz. Wenn dies nicht der Fall ist, können Sie ein Modell mit zufälligen Gesamtstrukturen ausprobieren.
Boosting funktioniert auch gut, wenn Sie über viele weitere Beispiele als Features verfügen, da das Modell anfällig für Überanpassung ist.
Normalisieren Sie das Dataset nicht. Da die Behandlung von Merkmalen ein einfacher, nicht parametrischer, kleiner als oder größer-als-Vergleich ist, hat die Normalisierung oder jede Form der nicht monotonen Transformationsfunktion möglicherweise nur geringe Auswirkungen.
Merkmale werden diskretisiert und vor dem Training zusammengefasst, sodass nur eine relativ geringer Satz von Schwellenwertkandidaten berücksichtigt wird, selbst für kontinuierliche Merkmal.
Details zur Implementierung
Ausführliche Informationen zum Boosted Decision Tree-Algorithmus finden Sie unter Greedy Function Approximation: A Gradient Boosting Machines.
Der Boosted Decision Tree-Algorithmus in Machine Learning verwendet die folgende Boostingmethode:
Beginnen Sie mit einer leeren Zusammenstellung von schwachen Lernmodulen.
Rufen Sie für jedes Trainingsbeispiel die aktuelle Ausgabe der Zusammenstellung ab. Dies ist die Summe der Ausgaben aller schwachen Lerner im Ensemble.
Berechnen Sie den Farbverlauf der Verlustfunktion für jedes Beispiel.
Dies hängt davon ab, ob die Aufgabe ein binäres Klassifizierungsproblem oder ein Regressionsproblem ist.
In einem binären Klassifizierungsmodell wird Log-Loss verwendet, ähnlich wie bei der logistischen Regression.
Bei einem regression-Modell wird der quadrierte Verlust verwendet, und der Gradient ist die aktuelle Ausgabe, minus Ziel.
Verwenden Sie die Beispiele, um ein schwaches Lernziel zu verwenden, indem Sie den Farbverlauf verwenden, der nur als Zielfunktion definiert ist.
Fügen Sie der Zusammenstellung dieses schwache Lernmodul mit einer Stärke hinzu, die durch die Lernrate angegeben wird. Fahren Sie dann mit Schritt 2 fort, falls gewünscht.
In dieser Implementierung sind die schwachen Lerner die Regressionsstrukturen mit den geringsten Quadraten, die auf den in Schritt 3 berechneten Farbverläufen basieren. Für diese Bäume gelten die folgenden Einschränkungen:
Sie sind für die maximale Anzahl von Blättern trainiert.
Jedes Blatt verfügt über eine minimale Anzahl von Beispielen zum Schutz gegen eine Überanpassung.
Jeder Entscheidungsknoten ist ein einzelnes Merkmal, das mit einem Schwellenwert verglichen wird. Wenn dieses Merkmal kleiner als oder gleich dem Schwellenwert ist, folgt es einem Pfad. Wenn es größer als der Schwellenwert ist, folgt es dem anderen Pfad.
Jeder Blätterknoten ist ein konstanter Wert.
Der Strukturbaualgorithmus wählt gierig das Feature und den Schwellenwert aus, für die eine Aufteilung den quadratischen Verlust im Hinblick auf den in Schritt 3 berechneten Farbverlauf minimiert. Die Auswahl der Aufteilung unterliegt einer Mindestanzahl von Trainingsbeispielen pro Blatt.
Der Algorithmus wird wiederholt aufgeteilt, bis er die maximale Anzahl von Blättern erreicht oder bis keine gültige Aufteilung verfügbar ist.
Modulparameter
Name | Range | type | Standard | Beschreibung |
---|---|---|---|---|
Maximum number of leaves per tree | >=1 | Integer | 20 | Geben Sie die maximale Anzahl von Verzweigungen an, die pro Baum zulässig ist. |
Minimum number of samples per leaf node | >=1 | Integer | 10 | Geben Sie die minimale Anzahl von Fällen an, die zum Bilden einer Verzweigung erforderlich ist. |
Learning rate (Lernrate) | [double.Epsilon;1.0] | Float | 0.2 | Geben Sie die anfängliche Lerngeschwindigkeit an. |
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 Wert als Ausgangswert für den Zufallszahlengenerator ein, der vom Modell verwendet wird. Geben Sie keinen Wert an, um den Standardwert zu verwenden. | |
Allow unknown categorical levels | Any | Boolean | True | Bei "True" wird eine zusätzliche Ebene für jede Kategoriespalte erstellt. Alle Ebenen im Testdataset, die nicht im Trainingsdataset zur Verfügung stehen, werden dieser zusätzlichen Ebene zugeordnet. |
Output
Name | Type | BESCHREIBUNG |
---|---|---|
Untrainiertes Modell | ILearner-Schnittstelle | Ein untrainiertes binäres Klassifizierungsmodell |
Siehe auch
Klassifizierung
Regression bei verstärktem Entscheidungsbaum
Modulliste von A bis Z