logo

GBM im maschinellen Lernen

Maschinelles Lernen ist eine der beliebtesten Technologien zur Erstellung von Vorhersagemodellen für verschiedene komplexe Regressions- und Klassifizierungsaufgaben. Gradient-Boosting-Maschine (GBM) gilt als einer der leistungsstärksten Boosting-Algorithmen.

GBM im maschinellen Lernen

Obwohl beim maschinellen Lernen so viele Algorithmen verwendet werden, sind Boosting-Algorithmen in der Community des maschinellen Lernens auf der ganzen Welt zum Mainstream geworden. Die Boosting-Technik folgt dem Konzept des Ensemble-Lernens und kombiniert daher mehrere einfache Modelle (schwache Lernende oder Basisschätzer), um die endgültige Ausgabe zu generieren. GBM wird auch als Ensemble-Methode beim maschinellen Lernen verwendet, um schwache Lernende in starke Lernende umzuwandeln. In diesem Punkt, „GBM im maschinellen Lernen“ Wir werden Gradienten-Algorithmen für maschinelles Lernen, verschiedene Boosting-Algorithmen beim maschinellen Lernen, die Geschichte von GBM, seine Funktionsweise, verschiedene in GBM verwendete Terminologien usw. besprechen. Bevor wir jedoch beginnen, sollten wir uns zunächst mit dem Boosting-Konzept und den verschiedenen Boosting-Algorithmen beim maschinellen Lernen vertraut machen.

Was ist Boosting beim maschinellen Lernen?

Boosting ist eine der beliebtesten Modellierungstechniken für Lernensembles, mit der starke Klassifikatoren aus verschiedenen schwachen Klassifikatoren erstellt werden. Es beginnt mit der Erstellung eines Primärmodells aus verfügbaren Trainingsdatensätzen und identifiziert dann die im Basismodell vorhandenen Fehler. Nach der Identifizierung des Fehlers wird ein sekundäres Modell erstellt und in diesem Prozess wird außerdem ein drittes Modell eingeführt. Auf diese Weise wird dieser Prozess der Einführung weiterer Modelle fortgesetzt, bis wir einen vollständigen Trainingsdatensatz erhalten, anhand dessen das Modell korrekt vorhersagt.

AdaBoost (Adaptive Boosting) war der erste Boosting-Algorithmus in der Geschichte des maschinellen Lernens, der verschiedene schwache Klassifikatoren zu einem einzigen starken Klassifikator kombinierte. Es konzentriert sich hauptsächlich auf die Lösung von Klassifizierungsaufgaben wie der binären Klassifizierung.

Schritte zur Steigerung von Algorithmen:

Es gibt einige wichtige Schritte zur Verbesserung des Algorithmus:

  • Betrachten Sie einen Datensatz mit unterschiedlichen Datenpunkten und initialisieren Sie ihn.
  • Geben Sie nun jedem Datenpunkt das gleiche Gewicht.
  • Nehmen Sie dieses Gewicht als Eingabe für das Modell an.
  • Identifizieren Sie die Datenpunkte, die falsch klassifiziert sind.
  • Erhöhen Sie die Gewichtung für Datenpunkte in Schritt 4.
  • Wenn Sie eine entsprechende Ausgabe erhalten, beenden Sie diesen Vorgang. Andernfalls führen Sie die Schritte 2 und 3 erneut aus.

Beispiel:

Nehmen wir an, wir haben drei verschiedene Modelle mit ihren Vorhersagen und sie funktionieren auf völlig unterschiedliche Weise. Beispielsweise zeigt das lineare Regressionsmodell eine lineare Beziehung in den Daten, während das Entscheidungsbaummodell versucht, die Nichtlinearität in den Daten zu erfassen, wie in der Abbildung unten dargestellt.

GBM im maschinellen Lernen

Anstatt diese Modelle separat zur Vorhersage des Ergebnisses zu verwenden, erhalten wir außerdem ein resultierendes Modell mit korrekteren Informationen als alle Basismodelle, wenn wir sie in Form von Reihen oder Kombinationen verwenden. Mit anderen Worten: Anstatt die individuelle Vorhersage jedes Modells zu verwenden, könnten wir mehr Informationen aus den Daten erfassen, wenn wir die durchschnittliche Vorhersage dieser Modelle verwenden würden. Es wird als Ensemble-Lernen bezeichnet und Boosting basiert ebenfalls auf Ensemble-Methoden des maschinellen Lernens.

So benennen Sie ein Verzeichnis unter Linux um

Algorithmen im maschinellen Lernen verbessern

Beim maschinellen Lernen gibt es hauptsächlich vier Boosting-Algorithmen. Diese lauten wie folgt:

    Gradient Boosting Machine (GBM) Extreme Gradient Boosting Machine (XGBM) Leichtes GBM CatBoost

Was ist GBM im maschinellen Lernen?

Gradient Boosting Machine (GBM) ist eine der beliebtesten Forward-Learning-Ensemble-Methoden im maschinellen Lernen. Es handelt sich um eine leistungsstarke Technik zum Erstellen von Vorhersagemodellen für Regressions- und Klassifizierungsaufgaben.

GBM hilft uns, ein Vorhersagemodell in Form eines Ensembles schwacher Vorhersagemodelle wie Entscheidungsbäume zu erhalten. Immer wenn ein Entscheidungsbaum als schwacher Lerner fungiert, wird der resultierende Algorithmus als Gradienten-verstärkte Bäume bezeichnet.

Es ermöglicht uns, die Vorhersagen verschiedener Lernmodelle zu kombinieren und ein endgültiges Vorhersagemodell mit der richtigen Vorhersage zu erstellen.

Wenn wir jedoch denselben Algorithmus anwenden, stellt sich hier möglicherweise die Frage, wie mehrere Entscheidungsbäume bessere Vorhersagen liefern können als ein einzelner Entscheidungsbaum. Wie erfasst außerdem jeder Entscheidungsbaum unterschiedliche Informationen aus denselben Daten?

GBM im maschinellen Lernen

Die Antwort auf diese Fragen lautet also, dass die Knoten jedes Entscheidungsbaums eine andere Teilmenge von Merkmalen verwenden, um die beste Aufteilung auszuwählen. Das bedeutet, dass sich jeder Baum anders verhält und daher unterschiedliche Signale aus denselben Daten erfasst.

pd.merge

Wie funktioniert GBM?

Im Allgemeinen basieren die meisten überwachten Lernalgorithmen auf einem einzigen Vorhersagemodell wie linearer Regression, bestraftem Regressionsmodell, Entscheidungsbäumen usw. Es gibt jedoch einige überwachte Algorithmen in ML, die auf einer Kombination verschiedener Modelle im Ensemble basieren. Mit anderen Worten: Wenn mehrere Basismodelle ihre Vorhersagen beisteuern, wird ein Durchschnitt aller Vorhersagen durch Boosting-Algorithmen angepasst.

Gradientenverstärkungsmaschinen bestehen aus den folgenden drei Elementen:

  • Verlustfunktion
  • Schwache Lernende
  • Additives Modell

Lassen Sie uns diese drei Elemente im Detail verstehen.

1. Verlustfunktion:

Allerdings gibt es beim maschinellen Lernen eine große Familie von Verlustfunktionen, die je nach Art der zu lösenden Aufgaben verwendet werden können. Die Verwendung der Verlustfunktion wird anhand der Anforderung spezifischer Merkmale der bedingten Verteilung wie Robustheit geschätzt. Während wir in unserer Aufgabe eine Verlustfunktion verwenden, müssen wir die Verlustfunktion und die Funktion zur Berechnung des entsprechenden negativen Gradienten angeben. Sobald wir diese beiden Funktionen erhalten, können sie problemlos in Maschinen zur Gradientenverstärkung implementiert werden. Es wurden jedoch bereits mehrere Verlustfunktionen für GBM-Algorithmen vorgeschlagen.

Klassifizierung der Verlustfunktion:

Basierend auf der Art der Antwortvariablen y kann die Verlustfunktion wie folgt in verschiedene Typen eingeteilt werden:

    Kontinuierliche Antwort, y ∈ R:
    • Gaußsche L2-Verlustfunktion
    • Laplace-L1-Verlustfunktion
    • Huber-Verlustfunktion, δ angegeben
    • Quantilverlustfunktion, α angegeben
    Kategoriale Antwort, y ∈ {0, 1}:
    • Binomiale Verlustfunktion
    • Adaboost-Verlustfunktion
    Andere Familien von Antwortvariablen:
    • Verlustfunktionen für Überlebensmodelle
    • Verlustfunktionen zählen Daten
    • Benutzerdefinierte Verlustfunktionen

2. Schwacher Lernender:

Schwache Lernende sind die grundlegenden Lernmodelle, die aus Fehlern der Vergangenheit lernen und beim Aufbau eines starken prädiktiven Modelldesigns zur Verbesserung von Algorithmen beim maschinellen Lernen helfen. Im Allgemeinen wirken Entscheidungsbäume als schwache Lernende bei der Verbesserung von Algorithmen.

Boosting ist definiert als das Framework, das kontinuierlich daran arbeitet, die Ausgabe von Basismodellen zu verbessern. Viele Anwendungen zur Gradientenverstärkung ermöglichen es Ihnen, verschiedene Klassen schwacher Lernender einzubinden, die Ihnen zur Verfügung stehen. Daher werden Entscheidungsbäume am häufigsten für schwache (Basis-)Lernende verwendet.

So trainieren Sie schwache Lernende:

Maschinelles Lernen verwendet Trainingsdatensätze, um Basislerner zu trainieren. Basierend auf der Vorhersage des vorherigen Lernenden verbessert es die Leistung, indem es sich auf die Zeilen der Trainingsdaten konzentriert, in denen der vorherige Baum die größten Fehler oder Residuen aufwies. Z.B. Flache Bäume gelten als Entscheidungsbäume mit schwachem Lernen, da sie einige Teilungen enthalten. Im Allgemeinen sind bei Boosting-Algorithmen Bäume mit bis zu 6 Teilungen am häufigsten.

Nachfolgend finden Sie eine Sequenz, in der schwache Lernende trainiert werden, um ihre Leistung zu verbessern, wobei sich jeder Baum in der Sequenz mit den Residuen des vorherigen Baums befindet. Darüber hinaus führen wir jeden neuen Baum ein, damit er aus den Fehlern des vorherigen Baums lernen kann. Diese lauten wie folgt:

  1. Betrachten Sie einen Datensatz und fügen Sie darin einen Entscheidungsbaum ein.
    F1(x)=y
  2. Passen Sie den nächsten Entscheidungsbaum mit den größten Fehlern des vorherigen Baums an.
    h1(x)=y?F1(x)
  3. Fügen Sie diesen neuen Baum dem Algorithmus hinzu, indem Sie beide in den Schritten 1 und 2 hinzufügen.
    F2(x)=F1(x)+h1(x)
  4. Passen Sie den nächsten Entscheidungsbaum erneut an die Residuen des vorherigen Baums an.
    h2(x)=y?F2(x)
  5. Wiederholen Sie dasselbe, was wir in Schritt 3 gemacht haben.
    F3(x)=F2(x)+h2(x)

Setzen Sie diesen Vorgang fort, bis uns ein Mechanismus (z. B. eine Kreuzvalidierung) zum Stoppen auffordert. Das endgültige Modell hier ist ein stufenweises additives Modell von b einzelnen Bäumen:

f(x)=B∑b=1fb(x)

Daher werden Bäume gierig konstruiert, wobei die besten Teilungspunkte basierend auf Reinheitswerten wie Gini ausgewählt oder der Verlust minimiert werden.

3. Additives Modell:

Das additive Modell ist definiert als das Hinzufügen von Bäumen zum Modell. Obwohl wir nicht mehrere Bäume gleichzeitig hinzufügen sollten, darf nur ein einzelner Baum hinzugefügt werden, damit vorhandene Bäume im Modell nicht geändert werden. Darüber hinaus können wir auch die Gradientenabstiegsmethode bevorzugen, indem wir Bäume hinzufügen, um den Verlust zu reduzieren.

while-Schleife Java

In den letzten Jahren wurde die Gradientenabstiegsmethode verwendet, um den Parametersatz wie den Koeffizienten der Regressionsgleichung und das Gewicht in einem neuronalen Netzwerk zu minimieren. Nach der Berechnung des Fehlers oder Verlusts wird der Gewichtsparameter verwendet, um den Fehler zu minimieren. Doch in letzter Zeit bevorzugen die meisten ML-Experten schwache Lernende-Untermodelle oder Entscheidungsbäume als Ersatz für diese Parameter. Dabei müssen wir dem Modell einen Baum hinzufügen, um den Fehler zu reduzieren und die Leistung dieses Modells zu verbessern. Auf diese Weise wird die Vorhersage des neu hinzugefügten Baums mit der Vorhersage der vorhandenen Baumreihe kombiniert, um eine endgültige Vorhersage zu erhalten. Dieser Prozess wird fortgesetzt, bis der Verlust ein akzeptables Niveau erreicht oder keine Verbesserung mehr erforderlich ist.

Diese Methode wird auch als funktionaler Gradientenabstieg oder Gradientenabstieg mit Funktionen bezeichnet.

EXTREME GRADIENT-BOOSTING-MASCHINE (XGBM)

XGBM ist die neueste Version der Gradient-Boosting-Maschinen, die ebenfalls sehr ähnlich wie GBM funktioniert. In XGBM werden Bäume nacheinander (einer nach dem anderen) hinzugefügt, die aus den Fehlern vorheriger Bäume lernen und diese verbessern. Obwohl XGBM- und GBM-Algorithmen im Aussehen und Verhalten ähnlich sind, gibt es dennoch einige Unterschiede zwischen ihnen:

  • XGBM verwendet verschiedene Regularisierungstechniken, um eine Unter- oder Überanpassung des Modells zu reduzieren, was auch die Modellleistung stärker steigert als Maschinen mit Gradientenverstärkung.
  • XGBM folgt der parallelen Verarbeitung jedes Knotens, während GBM dies nicht tut, was es schneller macht als Gradienten-Boosting-Maschinen.
  • XGBM hilft uns, die Imputation fehlender Werte zu vermeiden, da das Modell dies standardmäßig übernimmt. Es lernt selbstständig, ob diese Werte im rechten oder linken Knoten liegen sollen.

Leichte Gradienten-Boosting-Maschinen (Light GBM)

Light GBM ist aufgrund seiner Effizienz und hohen Geschwindigkeit eine verbesserte Version der Gradient-Boosting-Maschine. Im Gegensatz zu GBM und XGBM kann es große Datenmengen ohne Komplexität verarbeiten. Andererseits ist es nicht für Datenpunkte geeignet, deren Anzahl geringer ist.

Anstelle eines stufenweisen Wachstums bevorzugt Light GBM das blattweise Wachstum der Knoten des Baumes. Darüber hinaus wird bei Light GBM der Primärknoten in zwei Sekundärknoten aufgeteilt und später wird ein Sekundärknoten zur Aufteilung ausgewählt. Diese Aufteilung eines sekundären Knotens hängt davon ab, welcher zwischen zwei Knoten einen höheren Verlust aufweist.

GBM im maschinellen Lernen

Aufgrund der blattweisen Aufteilung wird daher der Light Gradient Boosting Machine (LGBM)-Algorithmus immer anderen vorgezogen, bei denen große Datenmengen bereitgestellt werden.

CATBOOST

Der Catboost-Algorithmus wird hauptsächlich zur Verarbeitung der kategorialen Merkmale in einem Datensatz verwendet. Obwohl die Algorithmen GBM, XGBM und Light GBM für numerische Datensätze geeignet sind, ist Catboost darauf ausgelegt, kategoriale Variablen in numerische Daten umzuwandeln. Daher besteht der Catboost-Algorithmus aus einem wesentlichen Vorverarbeitungsschritt, um kategoriale Merkmale in numerische Variablen umzuwandeln, die in keinem anderen Algorithmus vorhanden sind.

Vorteile von Boosting-Algorithmen:

  • Boosting-Algorithmen folgen dem Ensemble-Lernen, wodurch ein Modell eine genauere Vorhersage liefern kann, die nicht übertrumpft werden kann.
  • Boosting-Algorithmen sind viel flexibler als andere Algorithmen, da sie verschiedene Verlustfunktionen optimieren können und mehrere Optionen zur Optimierung von Hyperparametern bieten.
  • Es erfordert keine Datenvorverarbeitung, da es sowohl für numerische als auch für kategoriale Variablen geeignet ist.
  • Es ist keine Imputation fehlender Werte im Datensatz erforderlich, die fehlenden Daten werden automatisch verarbeitet.

Nachteile von Boosting-Algorithmen:

Im Folgenden sind einige Nachteile von Boosting-Algorithmen aufgeführt:

  • Boosting-Algorithmen können zu einer Überanpassung sowie zu einer Überbetonung der Ausreißer führen.
  • Der Gradient Boosting-Algorithmus konzentriert sich kontinuierlich auf die Minimierung der Fehler und erfordert mehrere Bäume, wodurch er rechenintensiv ist.
  • Es handelt sich um einen zeitaufwändigen und speicherintensiven Algorithmus.
  • Weniger interpretativer Natur, obwohl dies leicht mit verschiedenen Tools behoben werden kann.

Abschluss:

Auf diese Weise haben wir Boosting-Algorithmen für die prädiktive Modellierung beim maschinellen Lernen gelernt. Außerdem haben wir verschiedene wichtige Boosting-Algorithmen besprochen, die in ML verwendet werden, wie GBM, XGBM, Light GBM und Catboost. Darüber hinaus haben wir verschiedene Komponenten gesehen (Verlustfunktion, schwacher Lernender und additives Modell) und wie GBM mit ihnen funktioniert. Wie vorteilhaft Boosting-Algorithmen für den Einsatz in realen Szenarien usw. sind.