Ich weiß, wie man lineare Zielfunktionen und lineare Boosts in XGBoost implementiert. Meine konkrete Frage lautet: Wenn der Algorithmus zum Residuum (oder zum negativen Gradienten) passt, verwendet er bei jedem Schritt ein Merkmal (dh ein univariates Modell) oder alle Merkmale (multivariates Modell)?
Jeder Verweis auf die Dokumentation zu den linearen Boosts in XGBoost ist willkommen.
BEARBEITEN: Lineare Boosts können in XGBoost implementiert werden, indem der Parameter 'Booster' auf 'gblinear' gesetzt wird. Unter: http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3885826/ finden Sie nützliche Informationen zum linearen Boosten. Beachten Sie, dass ich nicht über die Zielfunktion (die auch linear sein kann) spreche, sondern über die Boosts selbst.
Vielen Dank!
quelle
Antworten:
Kurze Antwort auf Ihre Frage:
Der Algorithmus verwendet eine Funktion oder alle Funktionen hängen von Ihrer Einrichtung ab. In meiner langen Antwort, die unten aufgeführt ist, werden in den Beispielen für Entscheidungsstümpfe und lineare Lernende alle Funktionen verwendet. Wenn Sie möchten, können Sie jedoch auch eine Teilmenge von Funktionen anpassen. Stichprobenspalten (Features) werden als Verringerung der Varianz des Modells oder Erhöhung der "Robustheit" des Modells angesehen, insbesondere wenn Sie über eine große Anzahl von Features verfügen.
In
xgboost
, für Baumbasislerner können Sie einstellen ,colsample_bytree
auf Probe in jeder Iteration passen verfügt. Für Lernende mit linearer Basis gibt es keine solchen Optionen, daher sollte es für alle Funktionen geeignet sein. Darüber hinaus verwenden nicht zu viele Menschen lineare Lernende bei xgboost oder Gradientenverstärkung im Allgemeinen.Lange Antwort für linear als schwacher Lernender zum Boosten:
In den meisten Fällen verwenden wir den linearen Lernenden möglicherweise nicht als Basislerner. Der Grund ist einfach: Das Addieren mehrerer linearer Modelle ist weiterhin ein lineares Modell.
Bei der Verbesserung unseres Modells handelt es sich um eine Summe von Basislernenden:
Dabei ist die Anzahl der Iterationen beim Boosten, das Modell für die -Iteration.M bm mth
Wenn die Basislern linear sind, zum Beispiel an , dass wir nur laufen Iterationen und und , dann2 b1=β0+β1x b2=θ0+θ1x
Das ist ein einfaches lineares Modell! Mit anderen Worten, das Ensemblemodell hat die "gleiche Kraft" wie der Grundschüler!
Noch wichtiger ist, wenn wir das lineare Modell als Basislerner verwenden, können wir dies nur einen Schritt tun, indem wir das lineare System lösen, anstatt mehrere Iterationen beim Boosten zu durchlaufen.XTXβ=XTy
Daher möchten die Menschen andere Modelle als das lineare Modell als Basislerner verwenden. Baum ist eine gute Option, da das Hinzufügen von zwei Bäumen nicht gleich einem Baum ist. Ich werde es mit einem einfachen Fall demonstrieren: Entscheidungsstumpf, der ein Baum mit nur 1 Teilung ist.
Ich mache eine Funktionsanpassung, bei der die Daten durch eine einfache quadratische Funktion erzeugt werden, . Hier ist die gefüllte Konturgrundwahrheit (links) und die endgültige Entscheidung zur Verbesserung des Stumpfes (rechts).f(x,y)=x2+y2
Überprüfen Sie nun die ersten vier Iterationen.
Beachten Sie, dass das Modell in der 4. Iteration im Gegensatz zum linearen Lernenden nicht durch eine Iteration (einen einzelnen Entscheidungsstumpf) mit anderen Parametern erreicht werden kann.
Bisher habe ich erklärt, warum Menschen keinen linearen Lernenden als Basislerner verwenden. Nichts hindert die Leute jedoch daran. Wenn wir ein lineares Modell als Basislerner verwenden und die Anzahl der Iterationen einschränken, entspricht dies dem Lösen eines linearen Systems, begrenzt jedoch die Anzahl der Iterationen während des Lösungsprozesses.
Das gleiche Beispiel, aber im 3D-Diagramm sind die Daten die rote Kurve und die grüne Ebene die endgültige Anpassung. Sie können leicht erkennen, dass das endgültige Modell ein lineares Modell ist und
z=mean(data$label)
parallel zur x-, y-Ebene verläuft. (Sie können sich vorstellen, warum? Dies liegt daran, dass unsere Daten "symmetrisch" sind, sodass jede Neigung der Ebene den Verlust erhöht.) Überprüfen Sie nun, was in den ersten 4 Iterationen passiert ist: Das angepasste Modell steigt langsam auf den optimalen Wert (Mittelwert) an.Abschließende Schlussfolgerung: Linearer Lernender ist nicht weit verbreitet, aber nichts hindert die Menschen daran, ihn zu verwenden oder in einer R-Bibliothek zu implementieren. Darüber hinaus können Sie es verwenden und die Anzahl der Iterationen begrenzen, um das Modell zu regulieren.
In Verbindung stehender Beitrag:
Gradientenverstärkung für lineare Regression - warum funktioniert das nicht?
Ist ein Entscheidungsstumpf ein lineares Modell?
quelle