Hintergrund

Das XGBoost-Framework hat sich zu einem sehr leistungsfähigen und sehr populären Werkzeug im Bereich des maschinellen Lernens entwickelt. Diese Bibliothek enthält eine Vielzahl von Algorithmen, die jeweils mit einem eigenen Satz von Hyperparametern ausgestattet sind. Dies erlaubt es, viele Algorithmen in einem Paket zu kombinieren. Man kann verschiedene Klassifikations-, Regressions- oder Rankingaufgaben modellieren, indem Bäume bzw. lineare Funktionen verwendet werden, indem verschiedene Regularisierungsschemata angewendet werden oder indem viele andere Aspekte der einzelnen Algorithmen angepasst werden können.

Diese Optionen werden durch Hyperparameter gesteuert. Sie können in zwei Klassen unterteilt werden: Parameter, die die Eigenschaften eines Modells festlegen, und Parameter, die das Verhalten eines Modells anpassen. Ein Beispiel für den ersten Typ ist die Art der Zielvariable (objective). Offensichtlich wird eine binäre Klassifikationsaufgabe eine andere Zielvariable haben als eine numerische Vorhersage. Der zweite Satz von Parametern verwaltet den Trainingsprozess. Die Lernrate, normalerweise eta genannt, passt beispielsweise den Informationsgewinn für jeden Lernschritt an und verhindert so eine Überanpassung des Algorithmus auf die Trainingsdaten.

Dieser Artikel konzentriert sich auf zwei spezifische Parameter, die sich scheinbar sehr stark ähneln und dadurch eine gewisse Verwirrung verursachen können: die Art der Zielvariable (objective) und der Booster.

Für weitere Informationen zum vollständigen Satz an Parametern sei auf die offizielle XGBoost Dokumentation verwiesen.

 

Kleiner Überblick über die zwei XGBoost Parameter: booster und objective

  • Der Booster-Parameter legt den Typ des „Learners“ fest, also das Grundkonzept des Algorithmus. Normalerweise ist dies entweder ein Entscheidungsbaum oder eine lineare Funktion. Da XGBoost mehrere Varianten des Learners kombiniert, besteht das Modell im Falle von Entscheidungsbäumen aus einem geboosteten Ensemble von Bäumen. Für den linearen Booster ist es eine gewichtete Summe von linearen Funktionen.
  • Das Lernziel (objective) bestimmt den Typ der Zielvariable. Die verfügbaren Optionen umfassen Regression, logistische Regression, Binär- und Multiklassifikation und Rang. Diese Option erlaubt es, XGBoost-Modelle auf verschiedene Arten von Anwendungsfällen anzuwenden. Der Standardwert ist „reg:squarederror“ (früher „reg:linear“ genannt, was verwirrend war und deshalb umbenannt wurde (siehe Details)).

Dabei ist zu beachten, dass das Lernziel unabhängig vom Booster ist. Entscheidungsbäume sind nicht nur in der Lage, Klassifikationsaufgaben durchzuführen, sondern können auch kontinuierliche Variablen mit einer gewissen Granularität für den im Training verwendeten Datenbereich vorhersagen.

Das Ziel wird also immer von der jeweiligen Modellierungsaufgabe bestimmt, während die beiden Standardbooster für das gleiche Problem gültig sein können.

Visualisierung beider Booster

Um die Unterschiede zwischen den beiden Hauptvarianten des XGBoost-Boosters zu verdeutlichen, wird ein einfaches Beispiel verwendet, bei dem der lineare und der tree Booster für eine Regressionsaufgabe verwendet werden. Die Analyse wird in R mit der „xgboost“-Bibliothek für R durchgeführt.

In diesem Beispiel wird eine kontinuierliche Zielvariable vorhergesagt. Das richtige Lernziel ist also „reg:squarederror“. Die beiden wichtigsten Booster-Optionen, gbtree und gblinear, werden verglichen.

Der Datensatz ist einfach aufgebaut. Der Eingangsparameter x ist eine kontinuierliche Variable, die von 0 bis 10 reicht. Es wird kein Rauschen hinzugefügt, um die Aufgabe einfach zu halten. Die Zielvariable wird aus dem Eingangsparameter generiert:

y=x+   

Die Trainingsdaten werden als Teilmenge des vollständigen Datensatzes ausgewählt, indem zwei Teilbereiche, [1:4] und [6:9], ausgewählt werden. Dies ist in der Abbildung unten dargestellt (gelbe Datenpunkte). Dadurch kann getestet werden, wie gut sich das Modell auf ungesehenen Daten verhält.

 

Mit diesen Trainingsdaten werden zwei XGBoost-Modelle generiert, m1_gbtree mit dem gbtree-Booster und m2_gblinear mit dem gblinear-Booster. Mit den trainierten Modelle werden dann Vorhersagen für den gesamten Datensatz generiert.

With this training data, two XGBoost models are generated, m1_gbtree with the gbtree booster and m2_gblinear with the gblinear booster. The trained models are then used to generate predictions for the whole data set.

ABCDEFGHIJ0123456789
model
<chr>
RMSE (full data)
<dbl>
MAE (full data)
<dbl>
RMSE (train data)
<dbl>
MAE (train data)
<dbl>
m1_gbtree 4.91 2.35 0.05 0.03
m2_gblinear 7.74 6.39 4.50 3.89

Die Vorhersagen für den gesamten Datensatz sind in der obigen Grafik zusammen mit dem vollständigen Datensatz dargestellt. Das erste Modell, das Entscheidungsbäume verwendet, sagt die Trainingsdaten in den Regionen, in denen das Modell mit Trainingsdaten versorgt wurde, gut voraus. Allerdings treten sowohl in den äußeren Regionen (x<1 und x>9) als auch in der zentralen Region (4<x<6) Diskrepanzen auf. Das baumbasierte Modell repliziert die Vorhersage des nächstgelegenen bekannten Datenpunktes und erzeugt so horizontale Linien. Dies ist immer dann der Fall, wenn Bäume für kontinuierliche Vorhersagen verwendet werden. Es wird keine Formel gelernt, die eine Inter- oder Extrapolation erlaubt.

Das zweite Modell verwendet eine lineare Funktion für jeden Learner im gradient Boosting Prozess. Die gewichtete Kombination dieser Learner ist immer noch eine lineare Funktion. Dies erklärt das Verhalten des Modells: Die Vorhersagen folgen einer linearen Kurve und nicht dem nichtlinearen Verhalten der Daten.

Wenn man sich die Metriken für den vollständigen Datensatz ansieht, zeigt das baumbasierte Modell einen niedrigeren RMSE (4,9 gegenüber 7,7) und MAE (2,4 gegenüber 6,4) als das lineare Modell. Es ist zu beachten, dass die anderen Hyperparameter der Modelle nicht feinjustiert wurden und daher diese Zahlen nicht unbedingt das Optimum widerspiegeln. Dennoch zeigen sie, wie schlecht die Modelle auf dem gesamten Datensatz abschneiden. Die Metriken, die nur Trainingsdaten berücksichtigen, verdeutlichen die Unterschiede in der Modellierung. Das baumbasierte Modell stellt die Trainingsdaten gut dar, während das lineare Modell dies nicht tut. Dies ist darauf zurückzuführen, dass die Abhängigkeit der Zielvariablen von der Eingangsvariablen nicht linear ist.

Können die Modelle verbessert werden, wenn eine nichtlineare Variable im Training zur Verfügung gestellt wird? Als Test wird jedes Modell auf modifizierten Eingangsdaten trainiert, die sowohl auf der ursprünglichen Eingangsvariablen x als auch auf einer neuen Variablen x_int=x^2 basieren. Die neue Variable enthält den Interaktionsterm, der das nichtlineare Verhalten überhaupt erst verursacht.

Zusätzlich wird ein einfaches lineares Regressionsmodell (nicht XGBoost) zum Vergleich hinzugefügt, einmal mit und einmal ohne Interaktionsterm.

model
<chr>
RMSE (full data)
<dbl>
MAE (full data)
<dbl>
RMSE (train data)
<dbl>
 
m1_gbtree 4.91 2.35 0.05  
m6_gbtree_int 4.91 2.35 0.05  
m2_gblinear 7.74 6.39 4.50  
m3_gblinear_int 0.00 0.00 0.00  
m4_lin_reg 7.74 6.39 4.50  
m5_lin_reg_int 0.00 0.00 0.00  

Daraus können wir ein paar Dinge lernen:

Erstens: Der Interaktionsterm verbessert die linearen Modelle erheblich. Sie zeigen jetzt eine perfekte Übereinstimmung mit dem vollständigen Datensatz. Hier modelliert die Regressionsfunktion exakt das wahre Verhältnis zwischen Eingangs- und Zielgröße. Darüber hinaus erlaubt die trainierte Funktion eine gute Extrapolation auf ungesehene Daten.

Zweitens hat sich das Modell mit Entscheidungsbaum durch die Einbeziehung des Interaktionsterms nicht verbessert. Dies lässt sich erklären, wenn man sich nochmals vor Augen führt, wie Bäume für eine Regressionsaufgabe funktionieren. Ein Baum teilt den die Trainingsdaten in feine Unterbereiche auf, die durch die Blätter (leaves) repräsentiert werden. Für jedes Blatt wird ein Vorhersagewert von der Zielvariablen gelernt. Dadurch wird die Zielvariable diskretisiert. Das Hinzufügen von weiteren Eingabevariablen verfeinert die Aufteilung des Inputraumes. In diesem Beispiel reicht die ursprüngliche Eingangsvariable x jedoch schon aus, um eine gute Aufteilung zu erzeugen, und durch das Hinzufügen der neuen Eingangsvariablen wird keine neue Information gewonnen.

Schließlich zeigt der lineare Booster der XGBoost-Familie das gleiche Verhalten wie eine lineare Standardregression, mit und ohne Interaktionsterm. Dies mag nicht überraschen, da beide Modelle eine Verlustfunktion für eine lineare Regression optimieren, d.h. den quadratischen Fehler reduzieren. Beide Modelle sollten zum optimalen Ergebnis konvergieren, das identisch sein sollte (wenn auch vielleicht nicht in jeder letzten Stelle). Dieser Vergleich ist natürlich nur gültig, wenn das objektive „reg:squarederror“ für das XGBoost-Modell verwendet wird.

 

Zusammenfassung

In diesem Artikel wurden die beiden Hauptbooster gblinear und gbtree der XGBoost-Familie mit nichtlinearen und nicht kontinuierlichen Daten getestet. Beide Booster zeigten konzeptionelle Grenzen hinsichtlich ihrer Fähigkeit, Nichtlinearität zu extrapolieren oder zu behandeln. Baumbasierte Modelle erlauben es, alle Arten von nichtlinearen Daten gut darzustellen, da keine Formel benötigt wird, die die Beziehung zwischen Ziel- und Eingangsgrößen beschreibt. Dies ist ein enormer Vorteil, wenn diese Beziehungen und Wechselwirkungen unbekannt sind. Lineare Modelle hingegen können keine anderen Beziehungen lernen als rein lineare. Wenn diese zusätzlichen Wechselwirkungen aber bekannt sind, werden lineare Modelle ziemlich mächtig.

Der zweite Aspekt berücksichtigt die Tatsache, dass die Trainingsdaten nicht immer den gesamten Datenbereich des Anwendungsfalles abdecken. Hier muss das Modell von bekannten Datenpunkten auf die neuen Regionen inter- oder extrapolieren. Im Falle von Bäumen steht keine Formel zur Verfügung, die es erlauben würde, für diese Bereiche aussagekräftige Vorhersagewerte zu liefern. Im Gegensatz dazu ist dies der Hauptvorteil von linearen Regressionsmodellen – wenn die gleichen Annahmen auf die neuen Daten angewendet werden können. Mit anderen Worten, wenn sich die neuen Daten in gleicher Weise verhalten.

Haben Sie weitere Fragen? Wir beraten Sie gerne: marketing@avato.net

Impressum: 
Datum: Dezember 2019
Autor: Verena Baussenwein
Kontakt: marketing@avato.net
www.avato-consulting.com
© 2019 avato consulting ag
All Rights Reserved.