Warum konvertieren wir verzerrte Daten in eine Normalverteilung?


15

Ich habe eine Lösung des Wohnungspreiswettbewerbs auf Kaggle ( Human Analogs Kernel on House Prices: Advance Regression Techniques ) durchlaufen und bin auf diesen Teil gestoßen :

# Transform the skewed numeric features by taking log(feature + 1).
# This will make the features more normal.
from scipy.stats import skew

skewed = train_df_munged[numeric_features].apply(lambda x: skew(x.dropna().astype(float)))
skewed = skewed[skewed > 0.75]
skewed = skewed.index

train_df_munged[skewed] = np.log1p(train_df_munged[skewed])
test_df_munged[skewed] = np.log1p(test_df_munged[skewed])

Ich bin nicht sicher, was die Notwendigkeit ist, eine verzerrte Verteilung in eine normale Verteilung umzuwandeln. Kann mir bitte jemand im Detail erklären:

  1. Warum wird das hier gemacht? oder Wie ist das hilfreich?
  2. Inwiefern unterscheidet sich das von der Feature-Skalierung?
  3. Ist dies ein notwendiger Schritt für das Feature-Engineering? Was passiert wahrscheinlich, wenn ich diesen Schritt überspringe?

2
So Residuen Gaussian ist (und kann durch Mittelung werden aufgehoben), ist die Varianz stabile und zur Voraussetzung der Optimierer Konvergenz zu beschleunigen. en.wikipedia.org/wiki/Power_transform
Emre

Antworten:


12

Vielleicht möchten Sie Ihre Koeffizienten interpretieren. Das heißt, in der Lage zu sein, Dinge wie "wenn ich meine Variable um 1 erhöhe , dann sollte Y im Durchschnitt und bei allen anderen gleichen Werten um β 1 zunehmen ".X1Y.β1

Damit Ihre Koeffizienten interpretierbar sind, setzt die lineare Regression eine Reihe von Dingen voraus.

Eines dieser Dinge ist keine Multikollinearität. Das heißt, Ihre Variablen sollten nicht miteinander korreliert werden.X

Ein anderes ist Homoskedastizität . Die Fehler, die Ihr Modell festlegt, sollten die gleiche Varianz haben, dh Sie sollten sicherstellen, dass die lineare Regression keine kleinen Fehler für niedrige Werte von und große Fehler für höhere Werte von X verursacht . Mit anderen Worten, der Unterschied zwischen dem, was man vorhersagen , Y und die wahren Werte Y sollte konstant sein. Sie können dies sicherstellen, indem Sie sicherstellen, dass Y einer Gaußschen Verteilung folgt. (Der Beweis ist sehr mathematisch.)XXY.^Y.Y.

Abhängig von Ihren Daten können Sie diese möglicherweise als Gauß-Daten definieren. Typische Transformationen sind Inverse, Logarithmus oder Quadratwurzeln. Natürlich gibt es viele andere, alles hängt von Ihren Daten ab. Sie müssen sich Ihre Daten ansehen und dann ein Histogramm erstellen oder einen Normalitätstest wie den Shapiro-Wilk-Test durchführen.

Dies sind alles Techniken, um einen unvoreingenommenen Schätzer zu erstellen . Ich denke nicht, dass dies etwas mit Konvergenz zu tun hat, wie andere gesagt haben (manchmal möchten Sie vielleicht auch Ihre Daten normalisieren, aber das ist ein anderes Thema).

Das Befolgen der linearen Regressionsannahmen ist wichtig, wenn Sie die Koeffizienten interpretieren oder statistische Tests in Ihrem Modell verwenden möchten. Ansonsten vergiss es.

Die Anwendung des Logarithmus oder Ihre Daten zu normalisieren, ist auch wichtig , weil die lineare Regression Optimierungsalgorithmen typischerweise minimieren y^-y2ynormalize


3

Die verzerrten Daten werden hier normalisiert, indem eine Eins hinzugefügt wird (eine wird hinzugefügt, damit die Nullen in eine Eins umgewandelt werden, da kein Protokoll von 0 definiert ist) und ein natürliches Protokoll erstellt wird. Die Daten können mit Transformationstechniken wie Quadratwurzel, Kehrwert oder Logarithmus nahezu normalisiert werden. Nun, warum ist es erforderlich. Tatsächlich gehen viele der Algorithmen in Daten davon aus, dass die Datenwissenschaft normal ist, und berechnen unter dieser Annahme verschiedene Statistiken. Je näher die Daten an der Normalität liegen, desto besser entspricht sie der Annahme.


3
Die Algorithmen hier sind Gradientenverstärkung und Lasso-Regression. Ich denke, diese Antwort wäre hilfreicher, wenn sie zeigen könnte, wie wichtig sie für diese beiden Algorithmen ist (oder nicht).
oW_

Wenn ein Modell trainiert wird, ob es sich um eine lineare Regression oder um einen Entscheidungsbaum (robust für Ausreißer) handelt, ist es aus meiner Sicht der Grund, warum es für ein Modell schwierig ist, ein geeignetes Muster in den Daten zu finden, ein Grund für die Erstellung von Versatzdaten in normale oder Gaußsche.
Goldi Rana

1

Weil Data Science letztendlich nur Statistik ist und eine der Hauptannahmen der Statistik der zentrale Grenzwertsatz ist . Dieser Schritt wird ausgeführt, da einige nachfolgende Schritte statistische Techniken verwenden, die darauf basieren.


1
Ein Satz ist keine Annahme. Der zentrale Grenzwertsatz garantiert nämlich, dass der Durchschnitt unabhängiger Zufallsvariablen annähernd normalverteilt ist, auch wenn die einzelnen Zufallsvariablen nicht normalverteilt sind.
Elias Strehle

1
Dies ist eine äußerst fehlerhafte Argumentationskette. Es ist wie: "- Ich habe gesehen, wie Leute Äpfel geschält haben, bevor sie gegessen haben. Warum? - Oh, das liegt daran, dass Äpfel Früchte sind und eine der Schlüsselfrüchte Orange ist und Sie immer eine Orange schälen!".
Ayorgo
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.