Chociaż AN6U5 udzielił bardzo dobrej odpowiedzi, chciałem dodać kilka punktów na przyszłość. Rozważając kodowanie na gorąco (OHE) i kodowanie etykiet , musimy spróbować zrozumieć, jaki model próbujesz zbudować. Mianowicie dwie kategorie modeli, które rozważymy, to:
- Modele oparte na drzewach: Drzewa decyzyjne ze wzmocnieniem gradientowym i losowe lasy.
- Modele niepochodzące z drzewa : liniowe, kNN lub sieci neuronowe.
Zastanówmy się, kiedy zastosować OHE, a kiedy zastosować Kodowanie etykiet podczas budowania modeli opartych na drzewach.
Stosujemy BHP, gdy:
- Gdy wartości, które są blisko siebie w kodowaniu etykiety, odpowiadają wartościom docelowym, które nie są blisko (dane nieliniowe).
- Gdy funkcja jakościowa nie jest porządkowa (pies, kot, mysz).
Stosujemy kodowanie etykiet, gdy:
- Kategoryczny cechą jest porządkowa (Jr kg, Sr. kg, szkoła podstawowa, gimnazjum, itp).
- Kiedy możemy wymyślić koder etykiet, który przypisuje bliskie etykiety do podobnych kategorii : Prowadzi to do mniej rozlewów warkocza, a tym samym skraca czas wykonania.
- Gdy liczba cech jakościowych w zestawie danych jest ogromna: Jednorazowe kodowanie cechy jakościowej z ogromną liczbą wartości może prowadzić do (1) dużego zużycia pamięci i (2) w przypadku, gdy model nie używa cech niekategoryzowanych. Możesz zająć się pierwszym przypadkiem, jeśli zastosujesz rzadkie matryce. Drugi przypadek może wystąpić, jeśli zbudujesz drzewo przy użyciu tylko podzbioru funkcji. Na przykład, jeśli masz 9 funkcji liczbowych i 1 kategorialny ze 100 unikatowymi wartościami, a jedną kategorię zakodowałeś na gorąco, otrzymasz 109 cech. Jeśli drzewo jest zbudowane tylko z podzbioru cech, początkowo 9 cech numerycznych będzie rzadko używanych. W takim przypadku możesz zwiększyć parametr kontrolujący rozmiar tego podzbioru. W xgboost nazywa się to colsample_bytree, w Sklearn's Random Forest max_features.
Jeśli chcesz kontynuować BHP, jak sugerował @ AN6U5, możesz połączyć PCA z OHE.
Zastanówmy się, kiedy zastosować OHE i kodowanie etykiet podczas budowania modeli nieopartych na drzewach.
Aby zastosować kodowanie etykiet, zależność między cechą a celem musi być liniowa, aby można było efektywnie korzystać z kodowania etykiet.
Podobnie w przypadku, gdy zależność jest nieliniowa, możesz użyć OHE do tego samego.
Uwaga: Niektóre wyjaśnienia zostały przywołane w Jak wygrać konkurs Data Science z Coursera.