Pracowałem nad rozwiązaniem konkursu cen mieszkań na Kaggle (jądro Human Analog w cenach domów: techniki regresji z wyprzedzeniem ) i natknąłem się na tę część:
# 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])
Nie jestem pewien, jaka jest potrzeba przekształcenia przekrzywionego rozkładu w rozkład normalny. Czy ktoś może szczegółowo wyjaśnić:
- Dlaczego to się tutaj robi? lub Jak to jest pomocne?
- Czym różni się to od skalowania funkcji?
- Czy jest to niezbędny krok do opracowania funkcji? Co może się stać, jeśli pominę ten krok?
regression
feature-extraction
feature-engineering
kaggle
feature-scaling
Abhijay Ghildyal
źródło
źródło
Odpowiedzi:
Możesz zinterpretować swoje współczynniki. To znaczy, aby móc powiedzieć rzeczy takie jak „jeśli zwiększę moją zmienną o 1, wówczas średnio i wszystkie inne wartości będą równe, Y powinno wzrosnąć o β 1X1 Y β1 ”.
Aby twoje współczynniki były interpretowalne, regresja liniowa zakłada kilka rzeczy.
Jedną z tych rzeczy nie jest wielokoliniowość. To znaczy, twójX zmienne nie powinny być skorelowane ze sobą.
Kolejną jest Homoscedastyczność . Błędy swój model rewizje powinny mieć taką samą wariancję, czyli należy upewnić się, że regresja liniowa nie robić małe błędy przy niskich wartościach i dużych błędów dla wyższych wartości X . Innymi słowy, różnica między tym, co przewidująX X Y^ Y Y zgodne z rozkładem Gaussa. (Dowód jest wysoce matematyczny).
W zależności od danych możesz być w stanie Gaussa. Typowe przekształcenia przyjmują odwrotność, logarytm lub pierwiastki kwadratowe. Istnieje wiele innych, wszystko zależy od twoich danych. Musisz spojrzeć na swoje dane, a następnie wykonać histogram lub przeprowadzić test normalności , taki jak test Shapiro-Wilka.
Są to wszystkie techniki budowy obiektywnego estymatora . Nie sądzę, żeby miało to coś wspólnego ze zbieżnością, jak powiedzieli inni (czasem możesz chcieć również znormalizować swoje dane, ale to inny temat).
Zgodnie z założeniami regresji liniowej jest ważne, jeśli chcesz albo zinterpretować współczynniki lub jeśli chcesz używać testów statystycznych w modelu. W przeciwnym razie zapomnij o tym.
Stosując logarytm lub normalizację danych, jest również ważny, ponieważ algorytmy optymalizacji regresji liniowej zazwyczaj zminimalizować∥y^−y∥2 y
normalize
źródło
Wypaczone dane są tutaj normalizowane przez dodanie jednego (jeden dodany, aby zera były przekształcane w jeden, ponieważ log 0 nie jest zdefiniowany) i pobranie logu naturalnego. Dane mogą być prawie normalizowane za pomocą technik transformacji, takich jak pierwiastek kwadratowy, odwrotność lub logarytm. Dlaczego jest to wymagane? W rzeczywistości wiele algorytmów w danych zakłada, że analiza danych jest normalna i oblicza różne statystyki, zakładając, że tak jest. Im bardziej dane są bliskie normalności, tym bardziej pasuje do założenia.
źródło
Ponieważ nauka danych to tylko statystyki na koniec dnia, a jednym z kluczowych założeń statystyki jest Twierdzenie o granicy centralnej . Tak więc ten krok jest wykonywany, ponieważ w kolejnym kroku wykorzystuje się techniki statystyki, które się na nim opierają.
źródło