Funkcja transformacji danych wejściowych

22

Czytałem o rozwiązaniu tego wyzwania OTTO Kaggle i rozwiązanie na pierwszym miejscu wydaje się wykorzystywać kilka transformacji dla danych wejściowych X, na przykład Log (X + 1), sqrt (X + 3/8) itp. Czy istnieje ogólna wskazówka, kiedy zastosować rodzaj transformacji do różnych klasyfikatorów?

Rozumiem pojęcia normalizacji średniej-zmiennej i minimalnej-maksymalnej. Jednak w przypadku powyższych transformacji zgaduję, że Log i Sqrt są używane do kompresji zakresu dynamicznego danych. Przesunięcie osi x służy tylko do ponownego wyśrodkowania danych. Jednak autor decyduje się na użycie różnych metod normalizacji dla tego samego wejściowego X przy podawaniu do różnych klasyfikatorów. Jakieś pomysły?

terenceflow
źródło
1
Nie mam pojęcia, co mogłoby sugerować tego rodzaju formuły, ale warto przyjrzeć się transformacjom typu box-cox, które sugerują wykładniki zmiennych.
anymous.asker

Odpowiedzi:

19

Kochamy normalną formę

W większości przypadków staramy się, aby działały normalnie. To nie jest punkt widzenia klasyfikatorów, ale widok ekstrakcji funkcji!

Która transformacja ?

Głównym kryterium wyboru transformacji jest: co działa z danymi? Jak wskazują powyższe przykłady, ważne jest rozważenie również dwóch pytań.

Co ma sens fizyczny (biologiczny, ekonomiczny, cokolwiek), na przykład w kontekście ograniczania zachowania, gdy wartości stają się bardzo małe lub bardzo duże? To pytanie często prowadzi do użycia logarytmów.

Czy możemy zachować wymiary i jednostki proste i wygodne? Jeśli to możliwe, wolimy łatwo myśleć o skalach pomiarowych.

Pierwiastek sześcienny objętości i pierwiastek kwadratowy obszaru mają wymiary długości, więc jak na razie nie komplikują spraw, takie transformacje mogą je uprościć. Wzajemne mają zwykle proste jednostki, jak wspomniano wcześniej. Często jednak dość skomplikowane jednostki stanowią poświęcenie, które należy złożyć.

Kiedy korzystać z czego ?

Najbardziej przydatne transformacje we wstępnej analizie danych to odwrotność, logarytm, pierwiastek sześcienny, pierwiastek kwadratowy i kwadrat. W dalszej części, nawet jeśli nie jest to podkreślane, zakłada się, że transformacje są używane tylko w zakresach, w których dają (skończone) liczby rzeczywiste jako wyniki.

  • Odwrotność : Odwrotność, x do 1 / x, z rodzeństwem ujemna odwrotność, x do -1 / x, jest bardzo silną transformacją z drastycznym wpływem na kształt rozkładu. Nie można go zastosować do wartości zerowych. Chociaż można go zastosować do wartości ujemnych, nie jest użyteczny, chyba że wszystkie wartości są dodatnie. Odwrotność stosunku można często interpretować tak łatwo, jak sam stosunek: Przykład:
    • gęstość zaludnienia (liczba osób na jednostkę powierzchni) staje się powierzchnią na osobę
    • osoby na lekarza stają się lekarzami na osobę
    • szybkości erozji stają się czasem erodowania głębokości jednostki

(W praktyce możemy chcieć pomnożyć lub podzielić wyniki przyjmowania odwrotności przez pewną stałą, taką jak 1000 lub 10000, aby uzyskać liczby, które są łatwe do zarządzania, ale które same nie mają wpływu na skośność lub liniowość).

Odwrotność odwraca porządek między wartościami tego samego znaku: największa staje się najmniejsza itp. Negatywna odwrotność zachowuje porządek między wartościami tego samego znaku.


  • Logarytm : Logarytm x log 10 x lub x log ex lub ln x lub x log 2 x jest silną transformacją o dużym wpływie na kształt rozkładu. Jest powszechnie stosowany do zmniejszania prawidłowej skośności i często jest odpowiedni dla mierzonych zmiennych. Nie można go zastosować do wartości zerowych lub ujemnych. Jedna jednostka w skali logarytmicznej oznacza pomnożenie przez podstawę zastosowanych logarytmów. Gwałtowny wzrost lub spadek.

    • y=aexp(bx)

lny=lna+bxx=0y=aexp(0)=a tak, że a jest kwotą lub liczbą, gdy x = 0. Jeśli aib> 0, wtedy y rośnie w coraz szybszym tempie (np. odsetki złożone lub niekontrolowany wzrost populacji), a jeśli a> 0 i b <0, y spada coraz wolniej (np. rozpad radioaktywny).


  • Funkcje zasilania :
  • y=axblogy=loga+blogx
    x=0b>0

  • y=axb=0

    • Rozważmy współczynniki y = p / q, gdzie p i q są w praktyce dodatnie.
  • Przykładami są:

    • Mężczyźni / kobiety
    • Zależni / pracownicy
    • Długość dolna / długość dolna
  • Zatem y jest gdzieś pomiędzy 0 a nieskończonością, lub w ostatnim przypadku między 1 a nieskończonością. Jeśli p = q, to ​​y = 1. Takie definicje często prowadzą do wypaczonych danych, ponieważ istnieje wyraźny dolny limit i brak wyraźnego górnego limitu. Logarytm to mianowicie

  • log y = log p / q = log p - log q, jest gdzieś pomiędzy-nieskończonością i nieskończonością, a p = q oznacza, że ​​log y = 0. Stąd logarytm takiego stosunku może być bardziej symetrycznie rozłożony.


  • Katalog główny : Katalog główny, x 1/3 . Jest to dość silna transformacja, mająca znaczący wpływ na kształt dystrybucji: jest słabsza niż logarytm. Służy również do zmniejszania prawidłowej skośności i ma tę zaletę, że można go zastosować do wartości zerowych i ujemnych. Zauważ, że pierwiastek sześcienny woluminu ma jednostki długości. Jest powszechnie stosowany do danych o opadach.

    • Zastosowanie do wartości ujemnych wymaga specjalnej uwagi. Rozważ
      (2) (2) (2) = 8 i (-2) (- 2) (- 2) = -8. Te przykłady pokazują, że
      pierwiastek sześcienny liczby ujemnej ma znak ujemny i taką samą
      wartość bezwzględną jak pierwiastek sześcienny równoważnej liczby dodatniej. Podobną właściwość posiada każdy inny pierwiastek, którego moc jest
      odwrotnością nieparzystej liczby całkowitej dodatniej (potęgi 1/3, 1/5, 1/7 itd.)

    • Ta właściwość jest trochę delikatna. Na przykład zmień moc tylko smidgen z 1/3 i nie możemy już zdefiniować wyniku jako iloczynu dokładnie trzech terminów. Jednak właściwość można wykorzystać, jeśli jest to przydatne.


  • x(1/2)

  • x2

    y=a+bx+cx2



    kwadratyki są zwykle używane wyłącznie dlatego, że mogą naśladować
    relacje w obszarze danych. Poza tym regionem mogą
    zachowywać się bardzo słabo, ponieważ przyjmują arbitralnie duże wartości dla ekstremalnych wartości x, i chyba że przecięcie a jest ograniczone do 0, mogą zachowywać się nierealnie blisko początku.
    • (x)2x2

hadi gharibi
źródło
Dzięki za post. naprawdę pomocny. czy możesz uzupełnić go o kilka przykładów i rysunków przedstawiających, w jaki sposób przekształca oryginalne dane w oddzielne dane?
Mvkt
1
@svk: Właśnie sformatowałem w sposób zrozumiały, myślę, że Hadi był osobą, która napisała odpowiedź. Jeśli moje przypuszczenia są słuszne, mógł skopiować z jakiejś książki. Zobaczmy, czy on odpowie / zaproponuje coś. W przeciwnym razie napisze odpowiedź
Toros91
2
jak powiedział @ Toros91: To połączenie różnych źródeł, bardzo polecam zobaczyć, jak wygrać konkurs Data Science: Ucz się od najlepszych kagglerów, a także stata docs
hadi gharibi
alryt. chociaż czy ktoś z was może zamieścić przykładowy kod w pythonie lub matlabie na temat przekształcania osi x w root.qot lub skalę root kostki. matlab ma wykres dziennika dla skali dziennika. ale w przypadku innych skal pomocne będzie posiadanie wykresu z tymi transformowanymi osiami
Mvkt
1

Te konkretne mogą być czysto heurystyczne. W przypadku obrazów jest to dość standardowe: zmień RGB na BGR i odejmij średnią z każdego piksela. Jest to wykorzystywane we wszystkich konkursach / zestawach danych, takich jak Imagenet, Pascal VOC, MS COCO. Powodem jest to, że sieć ma standardowy zestaw danych, ponieważ wszystkie obrazy mogą być bardzo różne.

Alex
źródło
0

To samo tutaj - nie mam pojęcia, nie widziałem tego wcześniej. Chyba próbowali różnych transformacji i wybrali tę, która działała najlepiej. Ponieważ w raporcie mówią, że niektóre inne transformacje byłyby również w porządku.

Tobi
źródło