Problemy z kodowaniem pojedynczym a kodowaniem pozorowanym


11

Zdaję sobie sprawę z tego, że zmienne kategorialne o poziomach k powinny być kodowane zmiennymi k-1 w kodowaniu fikcyjnym (podobnie w przypadku wielowartościowych zmiennych jakościowych). Zastanawiałem się, w jakim stopniu problem polega na kodowaniu jednorazowym (tj. Zamiast tego przy użyciu zmiennych k) zamiast kodowaniu fikcyjnym dla różnych metod regresji, głównie regresji liniowej, karanej regresji liniowej (Lasso, Ridge, ElasticNet), opartym na drzewach (losowe lasy , maszyny zwiększające gradient).

Wiem, że w regresji liniowej występują problemy z wieloma kolinearnością (chociaż w praktyce dopasowałem regresję liniową za pomocą OHE bez żadnych problemów).

Czy jednak należy zastosować kodowanie pozorowane we wszystkich i jak błędne byłyby wyniki, gdyby zastosowano kodowanie jednorazowe?

Skupiam się na prognozowaniu w modelach regresji z wieloma zmiennymi kategorialnymi (o wysokiej kardynalności), więc nie interesują mnie przedziały ufności.


10
Twierdzę, że niewłaściwe jest rozróżnienie tych dwóch. Zmienne manekina i zmienne jednorazowe są kompletnymi synonimami. Pierwszy termin jest starszy i pochodzi ze statystyk, a drugi jest młodszy i pochodzi z uczenia maszynowego. Trzecim i bardziej formalnym synonimem są zmienne kontrastowe typu wskaźnikowego . Pytanie, czy zastosować wszystkie nieredundantne zmienne k lub k-1 w zestawie takich zmiennych elementarnych, nie ma nic wspólnego z tą terminologią i zależy od rodzaju analizy oraz konkretnego algorytmu lub programu.
ttnphns

2
(cd.) Na przykład oprogramowanie regresji zazwyczaj nie pozwala wprowadzić całego k ze względu na osobliwość, ale równoważne ogólne oprogramowanie do modelowania liniowego może na to pozwolić, ponieważ stosuje podejście pseudoinwersyjne.
ttnphns

1
Jestem z @ttnphns, oba są okropnymi nazwami. Wolę kodowanie pełne i pomijanie .
Matthew Drury

2
Przepraszamy za terminologię, są to standardowe terminy, które widziałem używane przez praktyków (i podobnie ukierunkowane książki). Kwestia kolinearności pojawia się tylko w liniach (modele nieopenalizowane)? Nie wszystkie programy przestają wpisywać wszystkie k (np. Nauka scikita Pythona, popraw mnie, jeśli się mylę)
user90772

@MatthewDrury Jednym z moich petów są duplikaty terminów / fraz wkradających się w dziedzinę analizy statystycznej, takie jak „kodowanie na gorąco” i „testowanie A / B”. Każdy powinien trzymać się starszych „fałszywych kodów” i „testowania hipotez”, aby uniknąć nieporozumień.
RobertF

Odpowiedzi:


7

Problem z reprezentowaniem zmiennej kategorialnej, która ma poziomy ze zmiennymi w regresji, polega na tym, że jeśli model ma również stały składnik, to warunki będą liniowo zależne, a zatem model będzie niemożliwy do zidentyfikowania. Na przykład, jeśli modelem jest i , wówczas dowolny wybór wektora parametru jest nie do odróżnienia od . Więc chociaż oprogramowanie może dać ci szacunki dla tych parametrów, nie są one jednoznacznie określone i dlatego prawdopodobnie nie będą bardzo przydatne.kkμ=a0+a1X1+a2X2X2=1X1(β0,β1,β2)(β0+β2,β1β2,0)

Penalizacja sprawi, że model będzie identyfikowalny, ale nadmiarowe kodowanie nadal będzie wpływać na wartości parametrów w dziwny sposób, biorąc pod uwagę powyższe.

Wpływ redundantnego kodowania na drzewo decyzyjne (lub zbiór drzew) prawdopodobnie będzie przeważać daną cechę w stosunku do innych, ponieważ jest reprezentowana przez dodatkową redundantną zmienną, a zatem będzie wybierana częściej niż w innym przypadku dzieli się.


1
Nie sądzę, aby istniał jakiś powód, aby wstawiać przechwytywanie w drzewie lub w zespole drzew. Uważam, że jest to szczególna cecha modeli typu liniowego. Dlatego w przypadku modeli opartych na drzewach właściwym pomysłem nie jest przechwytywanie, pełne kodowanie.
Matthew Drury,

@MatthewDrury Myślę, że masz rację co do przechwytywania, ale nawet wtedy, w przypadku drzewa, nadmiarowe kodowanie wydaje się mieć ograniczone zastosowanie. Na przykład, jeśli funkcja jest binarna, jaka jest różnica między podziałem na pierwszą klasę a podziałem na drugą klasę? Nic, o ile mogę powiedzieć.
Kodiolog,

To prawda, ale myślę, że utrzymanie pełnej symetrii jest najprostszym sposobem, aby wszystko było oczywiście uczciwe i możliwe do interpretacji.
Matthew Drury,

1

Kodiolog miał świetną odpowiedź (+1). Kodowanie „na gorąco” i „pozorowane” metody kodowania są takie same, pod względem matrycy projektowej znajdują się w tej samej przestrzeni, na różnych podstawach. (chociaż kodowanie jednorazowe ma więcej kolumn)

Dlatego jeśli skupiasz się na dokładności zamiast interpretacji. Dwie metody kodowania nie mają znaczenia.


1
Mówiąc pedantycznie, wersja z jedną gorącą wersją nie jest podstawą (ponieważ jest zależna liniowo); zajmuje tylko tę samą przestrzeń. Ale czy na pewno kodowanie nie wpływa na dokładność? Uważam, że szczególnie w przypadku regresji karanej ostateczny wybrany model dokona różnych prognoz.
Kodiolog,

@Kodiolog dziękuje za poprawienie mnie na podstawie problemu.
Haitao Du

@Kodiolog, dlaczego dokładność będzie inna w znormalizowanej metodzie liniowej?
Haitao Du

4
W regresji regularnej należy zawsze używać pełnego kodowania (tzn. Nie pomijać, nie mogę zachować nazw, których używałeś, i wolę nie używać ich osobiście). Wynika to z faktu, że przechwytywanie nie jest karane, więc jeśli wnioskujesz o efekt poziomu jako nie będący częścią przechwytywania, trudno powiedzieć, że karzesz wszystkie poziomy jednakowo. Zamiast tego zawsze uwzględniaj wszystkie poziomy, więc każdy jest symetryczny względem kary.
Matthew Drury,

1
@Mathew Drury, dziękuję za ten ostatni komentarz. Czy możesz rozwinąć ją w odpowiedzi? Czy więc tylko w przypadku zwykłej regresji liniowej konieczne jest kodowanie pozorowane?
user90772,

1

Czuję najlepszą odpowiedzią na to pytanie jest pochowany w komentarzach przez @MatthewDrury, w którym stwierdza, że nie ma różnicy, i że należy użyć pozornie nadmiarowe kolumny w każdym regularyzowanej podejścia. @ Rozumowanie MatthewDrury brzmi

[W regresji regulowanej] przechwytywanie nie jest karane, więc jeśli wnioskujesz o efekt poziomu jako nie będący częścią przechwytywania, trudno powiedzieć, że karzesz wszystkie poziomy jednakowo. Zamiast tego zawsze uwzględniaj wszystkie poziomy, więc każdy jest symetryczny względem kary.

Myślę, że ma rację.


Powinieneś więc jedną zmienną kodować na gorąco z kpoziomami lub z k-1poziomami w zależności od sytuacji. Czy oprócz twojego oświadczenia (uregulowane / nieregulowane), czy byłyby wytyczne dotyczące postępowania we wszystkich przypadkach?
Dan Chaltiel,

Moją zasadą jest, że jeśli nie ma regularyzacji, tak jak w klasycznej ANOVA, używaj poziomów k-1. Jeśli występuje regularyzacja, jak w metodach bayesowskich lub regresja z regularyzacją L2, użyj poziomów k.
Ben Ogorek
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.