Załóżmy, że mam zestaw danych do nadzorowanego zadania klasyfikacji statystycznej, np. Za pomocą klasyfikatora Bayesa. Ten zestaw danych składa się z 20 elementów i chcę sprowadzić go do 2 elementów za pomocą technik redukcji wymiarów, takich jak analiza głównych składników (PCA) i / lub liniowa analiza dyskryminacyjna (LDA).
Obie techniki rzutują dane na mniejszą podprzestrzeń funkcji: dzięki PCA znajdowałbym kierunki (komponenty), które maksymalizują wariancję w zestawie danych (bez uwzględnienia etykiet klasy), a przy LDA miałem komponenty, które maksymalizowałyby pomiędzy separacja klas.
Zastanawiam się teraz, czy, jak i dlaczego można łączyć te techniki i czy ma to sens.
Na przykład:
- przekształcanie zestawu danych za pomocą PCA i rzutowanie go na nową podprzestrzeń 2D
- przekształcanie (już przekształconego PCA) zestawu danych przez LDA na max. separacja w klasie
lub
- pomijając krok PCA i używając 2 najlepszych komponentów z LDA.
lub dowolna inna kombinacja, która ma sens.
classification
pca
regularization
discriminant-analysis
overfitting
ameba mówi Przywróć Monikę
źródło
źródło
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.Odpowiedzi:
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. Σb N. 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:
źródło
Jeśli masz problem z dwiema klasami, LDA zabierze Cię do 1 wymiaru. Nie ma powodu, aby najpierw robić PCA.
źródło
assume we have 3 classes
. @SebastianRaschka: Wtedy LDA pozwoli ci na maksymalnie 2 funkcje dyskryminujące. Liczba wartości własnych w LDA wynosi min (num_groups-1, num_features).min(num_groups-1,num_features)
pochodzi ...