Warum sagt die Gradient Boosting-Regression negative Werte voraus, wenn mein Trainingssatz keine negativen y-Werte enthält?


8

Als ich die Anzahl der Bäume erhöhe in scikit lernen ist GradientBoostingRegressor, erhalte ich negative Prognosen, auch wenn es in meiner Ausbildung oder Testsatz keine negativen Werte sind. Ich habe ungefähr 10 Funktionen, von denen die meisten binär sind.

Einige der Parameter, die ich eingestellt habe, waren:

  • die Anzahl der Bäume / Iterationen;
  • Lerntiefe;
  • und Lernrate.

Der Prozentsatz der negativen Werte schien bei ~ 2% maximal zu sein. Die Lerntiefe von 1 (Stümpfe) schien den größten Prozentsatz der negativen Werte zu haben. Dieser Prozentsatz schien auch mit mehr Bäumen und einer geringeren Lernrate zuzunehmen. Der Datensatz stammt von einem der Kaggle-Spielplatzwettbewerbe.

Mein Code ist so etwas wie:

from sklearn.ensemble import GradientBoostingRegressor

X_train, X_test, y_train, y_test = train_test_split(X, y)

reg = GradientBoostingRegressor(n_estimators=8000, max_depth=1, loss = 'ls', learning_rate = .01)

reg.fit(X_train, y_train)

ypred = reg.predict(X_test)

1
Gibt es eine Chance auf ein reproduzierbares Beispiel mit Code und Daten?
Spacedman

2
Welcher Spielplatzwettbewerb ist das?
TheAxeR

Antworten:


8

Im Allgemeinen können sich Regressionsmodelle (beliebige) über den von Trainingsmustern überspannten Bereich hinaus willkürlich verhalten. Insbesondere können sie die Linearität der modellierten Funktion annehmen. Wenn Sie also beispielsweise ein Regressionsmodell mit Punkten trainieren:

X     Y
10    0
20    1
30    2

Es ist sinnvoll, ein Modell zu erstellen f(x) = x/10-1, das x<10negative Werte zurückgibt.

Gleiches gilt "zwischen" Ihren Datenpunkten. Es ist immer möglich, dass Sie aufgrund der angenommenen Funktionsfamilie (die mit einer bestimmten Methode modelliert werden kann) Werte "aus Ihren Trainingsmustern" erhalten.

Sie können dies auf eine andere Art und Weise betrachten - "Was ist das Besondere an negativen Werten?". Warum finden Sie das Vorhandensein negativer Werte seltsam (wenn nicht im Trainingssatz angegeben), während Sie nicht durch das Vorhandensein von beispielsweise alarmiert werden? .. Wert 2131,23? Sofern nicht auf diese Weise entwickelt, behandelt kein Modell negative Werte "anders" als positive. Dies ist nur ein natürliches Element der realen Werte, die wie jeder andere Wert erreicht werden können.


In Bezug auf Ihre Fragen denke ich, dass rein negative Werte leichter als Anomalien zu identifizieren sind, da sie das "-" vor sich haben oder in Diagrammen deutlich unter Null gehen. Die Frage könnte genauso gut lauten: "Warum sagt die Gradient Boosting-Regression zuvor nicht sichtbare Werte voraus?". Vielleicht könnten Sie versuchen, das zu erweitern? Es würde Ihnen sicherlich eine positive Abstimmung von mir bringen.
Josh

@lejlot - Im Allgemeinen ist dies nicht wahr. Bei Regressionsmodellen mit logistischen oder Tanh-Aktivierungen wird häufig garantiert, dass die Ergebnisse innerhalb einiger Grenzen liegen.
user48956

@ user48956 Antwortzustände "können sich willkürlich verhalten", ich behaupte nicht, dass Sie einige Einschränkungen nicht erzwingen können, natürlich können Sie - antworten Sie nur, dass es keine "datenabhängige" Einschränkung gibt (es sei denn, Sie haben ein sehr spezifisches Modell, das dies hat eingebaute Konstruktion) - wenn Sie dies als Experte manuell hinzufügen - liegt es an Ihnen.
Lejlot

5

Denken Sie daran, dass die GradientBoostingRegressor(unter der Annahme einer quadratischen Fehlerverlustfunktion) Regressionsbäume nacheinander an die Residuen der vorherigen Stufe anpasst. Wenn nun der Baum in Stufe i einen Wert vorhersagt, der größer als die Zielvariable für ein bestimmtes Trainingsbeispiel ist, wird der Rest von Stufe i für dieses Beispiel negativ sein, und daher wird der Regressionsbaum in Stufe i + 1 negativen Zielwerten ausgesetzt sein (das sind die Residuen aus Stufe i). Da der Boosting-Algorithmus alle diese Bäume addiert, um die endgültige Vorhersage zu treffen, kann dies meines Erachtens erklären, warum Sie möglicherweise negative Vorhersagen treffen, obwohl alle Zielwerte im Trainingssatz positiv waren, insbesondere, da Sie erwähnt haben, dass dies häufiger vorkommt oft, wenn Sie die Anzahl der Bäume erhöhen.


Dies ist die richtige Antwort.
Hahdawg
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.