Muss der Zielwert zusätzlich zu den Skalierungsfunktionen für die Regressionsanalyse skaliert werden?

52

Ich baue Regressionsmodelle. Als Vorverarbeitungsschritt skaliere ich meine Merkmalswerte auf Mittelwert 0 und Standardabweichung 1. Müssen die Zielwerte auch normalisiert werden?

user2806363
quelle

Antworten:

50

Lassen Sie uns zunächst analysieren, warum die Merkmalsskalierung durchgeführt wird. Die Merkmalsskalierung verbessert die Konvergenz von Algorithmen für steilste Abfahrten, die nicht die Eigenschaft der Skaleninvarianz besitzen.

Bei Trainingsbeispielen mit stochastischem Gefälle informieren Sie die Gewichtsaktualisierungen iterativ wie :

wt+1=wtγw(fw(x),y)

Wobei die Gewichte sind, eine Schrittweite ist, der Gradient bezüglich der Gewichte ist, eine Verlustfunktion ist, die durch parametrisierte Funktion ist , ein Trainingsbeispiel ist und die Antwort / Bezeichnung ist.wγwfwwxy

Vergleichen Sie die folgenden konvexen Funktionen, die die richtige Skalierung und die falsche Skalierung darstellen.

Feature-Skalierung

Ein Schritt durch eine Gewichtsaktualisierung von Größe führt zu einer viel besseren Verringerung des Fehlers im richtig skalierten Fall als im falsch skalierten Fall. Unten ist die Richtung von der Länge .γw(fw(x),y)γ

Verlaufsaktualisierung

Das Normalisieren der Ausgabe wirkt sich nicht auf die Form von , daher ist dies im Allgemeinen nicht erforderlich.f

Ich kann mir nur vorstellen, dass die Skalierung der Ausgaben Auswirkungen hat, wenn Ihre Antwortvariable sehr groß ist und / oder Sie f32-Variablen verwenden (was bei der linearen GPU-Algebra üblich ist). In diesem Fall ist es möglich, einen Gleitkommaüberlauf eines Elements der Gewichte zu erhalten. Das Symptom ist entweder ein Inf-Wert oder es wird zur anderen extremen Darstellung umgebrochen.

Jessica Mick
quelle
Wenn wir jedoch die Eingaben nicht skalieren und Gradient Descent anwenden, müssen wir nach Theta in etwa y = Theta0 + Theta1 * x1 + Theta2 * x2 auflösen, wenn wir die Werte von X1 und X2 aktualisieren (indem wir sie skalieren), während wir Y beibehalten (erwartete Ausgabe) das gleiche, werden die resultierenden Vorhersagen für Theta1, Theta2 nicht falsch sein, wenn wir sie auf die ursprüngliche Gleichung anwenden?
Prashant
14

Im Allgemeinen ist es nicht notwendig. Durch die Skalierung von Eingaben wird vermieden, dass ein oder mehrere Merkmale andere in ihrer Größe dominieren. Infolgedessen erfasst das Modell den Beitrag der kleineren Skalierungsvariablen kaum, selbst wenn diese stark sind. Wenn Sie das Ziel skalieren, wird der mittlere quadratische Fehler automatisch skaliert. MSE> 1 bedeutet automatisch, dass Sie schlechter abschneiden als eine konstante (naive) Vorhersage.

inzl
quelle
7

Nein, lineare Transformationen der Antwort sind niemals notwendig. Sie können jedoch hilfreich sein, um die Interpretation Ihres Modells zu erleichtern. Wenn Ihre Antwort zum Beispiel in Metern angegeben wird, aber normalerweise sehr klein ist, kann es hilfreich sein, auf Millimeter zu skalieren. Beachten Sie auch, dass das Zentrieren und / oder Skalieren der Eingaben aus demselben Grund nützlich sein kann. Beispielsweise können Sie einen Koeffizienten grob als den Effekt auf die Änderung der Antwort pro Einheit im Prädiktor interpretieren, wenn alle anderen Prädiktoren auf 0 gesetzt sind . Aber 0 ist oft kein gültiger oder interessanter Wert für diese Variablen. Durch Zentrieren der Eingaben können Sie den Koeffizienten als den Effekt pro Einheit interpretieren, der sich ändert, wenn die anderen Prädiktoren ihre Durchschnittswerte annehmen.

Andere Transformationen (z. B. log oder Quadratwurzel) können hilfreich sein, wenn die Antwort in den Prädiktoren auf der ursprünglichen Skala nicht linear ist. In diesem Fall können Sie allgemeine lineare Modelle lesen, um festzustellen, ob sie für Sie geeignet sind.

AlexK
quelle
1

Es hat Auswirkungen auf Gradientenabfallsaktualisierung in einem schlechten Weg. Überprüfen Sie die Formel für den Gefälle-Abstieg:

xn+1=xnγΔF(xn)

Nehmen wir an, ist eine Funktion, die 1000-mal größer alsx2x1

für wir . Der optimale Weg, um (0,0) zu erreichen, welches das globale Optimum ist, besteht darin, sich über die Diagonale zu bewegen, aber wenn eines der Merkmale das andere in Bezug auf den Maßstab dominiert, tritt dies nicht auf.F(x)=x2ΔF(x)=2x

Zur Veranschaulichung: Wenn Sie die Transformation , nehmen Sie eine einheitliche Lernrate für beide Koordinaten an und berechnen Sie den Gradienten dannDie funktionale Form ist dieselbe, aber die Lernrate für die zweite Koordinate muss auf 1/1000 derjenigen für die erste Koordinate angepasst werden, damit sie dieser entspricht. Wenn nicht, dominiert die Koordinate zwei und der Vektor zeigt mehr in diese Richtung.z=(x1,1000x1)γ

zn+1=znγΔF(z1,z2).
Δ

Infolgedessen spannt es das Delta so vor, dass es nur in diese Richtung zeigt, und verlangsamt die Konvergenz.

drSPacy_
quelle
0

Ja , Sie müssen die Zielvariable skalieren. Ich werde diese Referenz zitieren :

Eine Zielvariable mit einer großen Wertespreizung kann wiederum zu großen Fehlergradientenwerten führen, wodurch sich die Gewichtungswerte dramatisch ändern und der Lernprozess instabil wird.

In der Referenz finden Sie auch eine Demonstration des Codes, bei der die Modellgewichte während des Trainings aufgrund der sehr großen Fehler explodierten und die für Gewichtsaktualisierungen berechneten Fehlergradienten ebenfalls explodierten. Kurz gesagt, wenn Sie die Daten nicht skalieren und sehr große Werte haben, stellen Sie sicher, dass Sie sehr kleine Lernratenwerte verwenden. Dies wurde auch von @drSpacy erwähnt.

Fernando Wittmann
quelle