Hashing Trick - co się właściwie dzieje


12

Kiedy algorytmy ML, np. Vowpal Wabbit lub niektóre maszyny do faktoryzacji wygrywające w konkursach współczynnika klikalności ( Kaggle ), wspominają, że funkcje są „mieszane”, co to właściwie oznacza dla modelu? Powiedzmy, że istnieje zmienna reprezentująca identyfikator dodania internetowego, który przyjmuje wartości takie jak „236BG231”. Rozumiem zatem, że ta funkcja jest haszowana do losowej liczby całkowitej. Ale moje pytanie brzmi:

  • Czy liczba całkowita jest teraz używana w modelu, jako liczba całkowita (numeryczna) LUB
  • czy wartość zaszyfrowana jest nadal traktowana jak zmienna kategoryczna i kodowana na gorąco? Czyli sztuczką hashującą jest po prostu zaoszczędzić miejsce przy dużych danych?

Odpowiedzi:


7

Drugi punkt to wartość skrótu funkcji. Hashowanie i jedno gorące kodowanie do rzadkich danych oszczędza miejsce. W zależności od algoszu mieszającego możesz mieć różne stopnie zderzeń, co działa jak rodzaj redukcji wymiarów.

Ponadto, w szczególnym przypadku mieszania funkcji Kaggle i jednego gorącego kodowania, pomoc w rozszerzeniu / inżynierii funkcji poprzez pobranie wszystkich możliwych krotek (zwykle tylko drugiego rzędu, ale czasem trzeciego) funkcji, które są następnie mieszane z kolizjami, które jawnie tworzą interakcje, które często są predykcyjne podczas gdy poszczególne cechy nie są.

W większości przypadków technika ta w połączeniu z wyborem funkcji i regulacją elastycznej siatki w LR działa bardzo podobnie do jednej ukrytej warstwy NN, więc działa całkiem dobrze w zawodach.


Tak więc kodowanie „na gorąco” jest nadal używane, tylko wartości haszowane *, które, jak mówisz, oszczędzają miejsce i mogą powodować zmniejszenie wymiarów (przy określonych kolizjach). Czy to jest poprawne?
B_Miner

1
Kodowanie jednego hosta nie jest wymaganą częścią funkcji mieszających, ale często jest używane obok, ponieważ pomaga w przewidywaniu mocy. Jednym ze sposobów myślenia o jednym kodowaniu na gorąco jest przekształcenie funkcji z zestawu N dyskretnych wartości w zestaw N pytań binarnych. Być może nie jest dla mnie ważne, aby wiedzieć, czy cecha J ma wartość 2, czy 3, tylko że nie jest to 4. One Hot czyni to rozróżnienie specyficzne. To bardzo pomaga w modelach liniowych, podczas gdy podejścia zespolone (takie jak RF) skanują punkty przerwania w obiekcie, aby znaleźć to rozróżnienie.
cwharland
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.