Model regresji liniowej Scikit-learn pozwala użytkownikom wyłączyć przechwytywanie. Czyli w przypadku kodowania „na gorąco” należy zawsze ustawiać fit_intercept = False? W przypadku fikcyjnego kodowania fit_intercept powinien zawsze mieć wartość True? Na stronie nie widzę żadnego „ostrzeżenia”.
W przypadku nieregularnego modelu liniowego z kodowaniem „na gorąco”, tak, musisz ustawić intercept, aby był fałszywy, w przeciwnym razie poniesiesz idealną kolinearność. sklearn
pozwala również na karę skurczu grzbietu, w takim przypadku nie jest to konieczne, a tak naprawdę należy uwzględnić zarówno przechwycenie, jak i wszystkie poziomy. W przypadku fikcyjnego kodowania należy dołączyć punkt przecięcia, chyba że ujednolicono wszystkie zmienne, w którym to przypadku punkt przecięcia wynosi zero.
Skoro jedno-gorące kodowanie generuje więcej zmiennych, czy ma większy stopień swobody niż kodowanie pozorowane?
Punkt przecięcia jest dodatkowym stopniem swobody, więc w dobrze określonym modelu wszystko się równa.
Po drugie, co, jeśli istnieją k zmiennych kategorialnych? k zmiennych jest usuwanych w kodowaniu fikcyjnym. Czy stopień swobody jest nadal taki sam?
Nie można dopasować modelu, w którym zastosowano wszystkie poziomy obu zmiennych jakościowych, przechwytując lub nie. Ponieważ, gdy tylko zakodujesz na gorąco wszystkie poziomy w jednej zmiennej w modelu, powiedzmy za pomocą zmiennych binarnych , wtedy masz liniową kombinację predyktorów równą wektorowi stałemux1,x2,…,xn
x1+x2+⋯+xn=1
Jeśli następnie spróbujesz wprowadzić do modelu wszystkie poziomy innego kategorycznego , uzyskasz wyraźną kombinację liniową równą stałemu wektorowix′
x′1+x′2+⋯+x′k=1
i tak stworzyłeś zależność liniową
x1+x2+⋯xn−x′1−x′2−⋯−x′k=0
Więc musi opuścić poziom w drugiej zmiennej i linie wszystko poprawnie.
Powiedzmy, że mam 3 zmienne kategoryczne, z których każda ma 4 poziomy. W fikcyjnym kodowaniu 3 * 4-3 = 9 zmiennych jest budowanych z jednym przechwytywaniem. W kodowaniu pojedynczym 3 * 4 = 12 zmiennych jest budowanych bez przechwytywania. Mam rację?
Druga rzecz tak naprawdę nie działa. Utworzona macierz projektu będzie pojedyncza. Musisz usunąć trzy kolumny, po jednej z każdego z trzech różnych kodowań kategorycznych, aby odzyskać nietypowość projektu.3×4=12