Rozumiem, że w uczeniu maszynowym może być problem, jeśli zestaw danych ma wysoce skorelowane funkcje, ponieważ skutecznie kodują te same informacje.
Ostatnio ktoś zauważył, że gdy wykonujesz kodowanie na gorąco na zmiennej kategorialnej, masz skorelowane cechy, więc powinieneś upuścić jedną z nich jako „odniesienie”.
Na przykład kodowanie płci jako dwóch zmiennych is_male
i is_female
daje dwie cechy, które są całkowicie ujemnie skorelowane, dlatego zasugerowano użycie jednej z nich, skutecznie ustawiając linię podstawową na powiedzenie „mężczyzna”, a następnie sprawdzając, czy kolumna is_female jest ważna w algorytmie predykcyjnym .
To miało dla mnie sens, ale nie znalazłem w Internecie niczego, co mogłoby sugerować, że tak jest, więc czy to źle, czy coś pomijam?
Możliwa (bez odpowiedzi) duplikat: czy kolinearność funkcji zakodowanych w trybie „single hot” ma znaczenie dla SVM i LogReg?
you end up with correlated features, so you should drop one of them as a "reference"
Zmienne manekina lub zmienne wskaźnikowe (są to dwie nazwy używane w statystykach, synonimiczne dla „kodowania na gorąco” w uczeniu maszynowym) i tak są skorelowane parami, niezależnie od tego, czy wszystkie są zmiennymi k lub k-1. Tak więc lepsze słowo to „statystycznie / zbędne” zamiast „skorelowane”.Does keeping all k values theoretically make them weaker features
. Nie (choć nie jestem w 100% pewien, co rozumiesz przez „słabszy”).using something like PCA
Zauważ, na wszelki wypadek, że PCA na zestawie manekinów reprezentujących tę samą zmienną kategorialną ma niewiele praktycznych zalet, ponieważ korelacje w zestawie manekinów odzwierciedlają jedynie relacje między częstotliwościami kategorii (więc jeśli wszystkie częstotliwości są równe, wszystkie korelacje są równe do 1 / (k-1)).is_male
zmiennej, w przeciwieństwie do obu opcji? Może nie ma to sensu w tym kontekście i może to być problem tylko wtedy, gdy dwie różne zmienne faktycznie kodują tę samą informację (np. Wysokość w calach i wysokość w cm).Odpowiedzi:
lm
glm
W przypadku innych modeli stosuj te same zasady. Jeśli uzyskane prognozy zależą od tego, które kolumny pominiesz, nie rób tego. W przeciwnym razie jest w porządku.
Jak dotąd w tej odpowiedzi wspomniano tylko modele liniowe (i niektóre lekko nieliniowe). Ale co z bardzo nieliniowymi modelami, takimi jak drzewa i losowe lasy? Pomysły na kodowanie kategoryczne, takie jak „jedno-gorące”, wywodzą się głównie z modeli liniowych i rozszerzeń. Nie ma powodu, aby sądzić, że pomysły wywodzące się z tego kontekstu powinny obowiązywać bez modyfikacji drzew i lasów! dla niektórych pomysłów zobacz Losowa regresja lasu z rzadkimi danymi w Pythonie .
źródło