Podsumowanie: PCA można wykonać przed LDA, aby uregulować problem i uniknąć nadmiernego dopasowania.
Przypomnijmy, że prognozy LDA są obliczane za pomocą składni składowej , gdzie i są wewnątrz i między macierzami macierzy kowariancji. Jeśli jest mniej niż punktów danych (gdzie jest wymiarami przestrzeni, tj. cech / zmiennych), to będzie pojedynczą i dlatego nie będzie można jej odwrócić. W takim przypadku po prostu nie ma sposobu, aby wykonać LDA bezpośrednio, ale jeśli najpierw zastosuje się PCA, zadziała. @Aaron poczynił tę uwagę w komentarzach do swojej odpowiedzi i zgadzam się z tym (ale ogólnie nie zgadzam się z jego odpowiedzią, jak zobaczycie teraz).Σ- 1W.ΣbΣW.ΣbN.N.ΣW.
Jest to jednak tylko część problemu. Większy obraz jest taki, że LDA bardzo łatwo ma tendencję do nadpisywania danych. Zauważ, że wewnątrzklasowa macierz kowariancji zostaje odwrócona w obliczeniach LDA; dla odwracania macierzy wielowymiarowych jest to bardzo wrażliwa operacja, którą można wykonać niezawodnie tylko wtedy, gdy oszacowanie jest naprawdę dobre. Ale w wysokich wymiarach naprawdę trudno jest uzyskać dokładne oszacowanie , aw praktyce często trzeba mieć dużo więcej niż punktów danych, aby zacząć mieć nadzieję, że oszacowanie jest dobre. W przeciwnym razieΣW.N.≫ 1ΣW.N.ΣW. będzie prawie pojedyncza (tj. niektóre wartości własne będą bardzo niskie), a to spowoduje nadmierne dopasowanie, tj. prawie idealną separację klas na danych treningowych z przypadkową wydajnością na danych testowych.
Aby rozwiązać ten problem, należy uregulować problem. Jednym ze sposobów jest użycie PCA w celu zmniejszenia wymiarów w pierwszej kolejności. Istnieją inne, prawdopodobnie lepsze, np. Uregulowana metoda LDA (rLDA), która po prostu używa z małym zamiast (jest to nazywane estymatorem skurczu ), ale najpierw wykonanie PCA jest najprostszym podejściem i często działa dobrze.( 1 - λ ) ΣW.+ λ IλΣW.
Ilustracja
Oto ilustracja problemu nadmiernego dopasowania. Wygenerowałem 60 próbek na klasę w 3 klasach ze standardowego rozkładu Gaussa (średnie zero, wariancja jednostkowa) w przestrzeniach 10, 50, 100 i 150 wymiarów, i zastosowałem LDA do projekcji danych na 2D:
Zwróć uwagę, jak wraz ze wzrostem wymiarów, klasy stają się coraz lepiej oddzielane, podczas gdy w rzeczywistości nie ma różnicy między klasami.
Możemy zobaczyć, w jaki sposób PCA pomaga zapobiegać nadmiernemu dopasowaniu, jeśli lekce rozdzielimy klasy. Dodałem 1 do pierwszej współrzędnej pierwszej klasy, 2 do pierwszej współrzędnej drugiej klasy i 3 do pierwszej współrzędnej trzeciej klasy. Teraz są one lekko oddzielone, patrz lewy górny wykres podrzędny:
Nadmierne dopasowanie (górny rząd) jest nadal oczywiste. Ale jeśli wstępnie przetworzę dane za pomocą PCA, zawsze zachowując 10 wymiarów (dolny wiersz), przepasowanie zniknie, podczas gdy klasy pozostaną prawie optymalnie rozdzielone.
PS. Aby uniknąć nieporozumień: nie twierdzę, że PCA + LDA jest dobrą strategią regularyzacji (przeciwnie, radziłbym używać rLDA), po prostu pokazuję, że jest to możliwa strategia.
Aktualizacja. Bardzo podobny temat był wcześniej omawiany w następujących wątkach z interesującymi i wyczerpującymi odpowiedziami dostarczonymi przez @cbeleites:
Zobacz także to pytanie z kilkoma dobrymi odpowiedziami:
best practice
. PCA i LDA, jako techniki redukcji wymiarów, są bardzo różne. Czasami ludzie robią PCA przed LDA, ale wiąże się to z ryzykiem wyrzucenia (wraz z odrzuconymi komputerami) ważnych wymiarów dyskryminujących. Pytanie, które zadajesz, zostało zadane w jakiejś formie kilkakrotnie na tej stronie. Wyszukaj „PCA LDA”, aby przeczytać, co ludzie na to powiedzieli.