PCA, gdy wymiarowość jest większa niż liczba próbek


21

Natknąłem się na scenariusz, w którym mam 10 sygnałów / osobę na 10 osób (czyli 100 próbek) zawierających 14000 punktów danych (wymiarów), które muszę przekazać klasyfikatorowi. Chciałbym zmniejszyć wymiarowość tych danych, a PCA wydaje się być na to dobrym sposobem. Jednak udało mi się znaleźć tylko przykłady PCA, w których liczba próbek jest większa niż liczba wymiarów. Korzystam z aplikacji PCA, która wyszukuje komputery za pomocą SVD. Gdy go przekazuję, zestaw danych 100x14000 zwraca 101 komputerów, więc zdecydowana większość wymiarów jest oczywiście ignorowana. Program wskazuje, że pierwsze 6 komputerów zawiera 90% wariancji.

Czy uzasadnione jest założenie, że te 101 komputerów zawiera zasadniczo całą wariancję, a pozostałe wymiary są pomijalne?

W jednym z artykułów, które czytałem, twierdzi się, że przy użyciu podobnego (choć nieco niższej jakości) zestawu danych niż mój własny, udało się zmniejszyć 4500 wymiarów do 80, zachowując 96% oryginalnej informacji. Papierowe falowanie nad szczegółami zastosowanej techniki PCA, dostępnych było tylko 3100 próbek, i mam powód, by sądzić, że mniej próbek zostało wykorzystanych do faktycznego wykonania PCA (w celu usunięcia błędu systematycznego z fazy klasyfikacji).

Czy czegoś brakuje? Wszelkie opinie będą mile widziane.


2
Jeśli nie masz dużo więcej danych niż wymiarów, trudno jest znaleźć kierunek, który usuwa większość zmienności, co powinien zrobić pierwszy główny składnik. Ogólnie rzecz biorąc, istnieje klątwa wymiarowości. Dane mają tendencję do oddalania się od centrum w dużych wymiarach. Bellman pisał o tym w latach 60.
Michael R. Chernick

Odpowiedzi:


9

Spojrzałbym na problem z nieco innej perspektywy: na jak skomplikowany model możesz sobie pozwolić przy zaledwie 10 osobach / 100 próbkach?

I na to pytanie zwykle odpowiadam: znacznie mniej niż 100 komputerów. Zauważ, że pracuję na innym typie danych (widma wibracyjne), więc rzeczy mogą się nieco różnić. W mojej dziedzinie powszechna konfiguracja polegałaby na użyciu 10, 25 lub 50 komputerów obliczonych na podstawie widm O (1000) O (10) pacjentów.

Oto co bym zrobił:

  • Spójrz na wariancję pokrytą przez te 100 komputerów. Zazwyczaj stwierdzam, że tylko kilka składników naprawdę przyczynia się do rozbieżności w naszych danych.

  • Bardzo wolę PLS jako obróbkę wstępną do klasyfikacji niż PCA, ponieważ wykonuje znacznie lepszą pracę w sortowaniu kierunków, które mają dużą zmienność, która nie pomaga w klasyfikacji (w moim przypadku mogą to być zmienne ogniskowe, różna grubość próbki,. ..). Z mojego doświadczenia wynika, że ​​często otrzymuję podobne klasyfikatory z 10 ukrytymi zmiennymi PLS lub 25 do 50 komputerów.

  • Próbki walidacyjne muszą być przetwarzane z rotacją PCA obliczoną tylko z zestawu szkoleniowego, w przeciwnym razie walidacja może (aw tak ekstremalnych przypadkach, jak twoja najprawdopodobniej) mieć dużą nadmierną optymizm.
    Innymi słowy, jeśli przeprowadzasz walidację poza bootowaniem lub cross-validation, wstępne przetwarzanie PCA lub PLS musi zostać obliczone osobno dla każdej kombinacji pociągu / zestawu testowego.


Dzięki za bardzo pouczające posty. Pracuję z danymi sygnałów biometrycznych. Aby przeprowadzić klasyfikację z rozsądną wydajnością, potrzebuję mniej niż 100 komputerów, gdzieś w zakresie 25-50 byłoby w porządku. Zastanawiałem się nad zmniejszeniem częstotliwości próbkowania, aby zmniejszyć liczbę próbek, które muszę zbadać, ale czy spodziewałbyś się, że kompromis w rozdzielczości będzie tego wart, czy też przyniesie jakikolwiek efekt, biorąc pod uwagę, że trening o tej samej wielkości pozostaje taki sam ? Chociaż potrzebuję PCA, aby zachować spójność z innymi badaniami w tej dziedzinie, na pewno przyjrzę się PLS jako podejściu wtórnemu.
James

1
@James: Obawiam się, że nie można odpowiedzieć na pytanie o częstotliwość próbkowania bez znajomości danych. Zasadniczo chodzi o efektywną wielkość próby. Nie wiedząc nic więcej, możemy jedynie powiedzieć, że jest to gdzieś pomiędzy n (osoby) i n (próbki). Jeśli wszystkie 10 próbek 1 osoby są znacznie bardziej do siebie podobne niż próbki innej osoby, wówczas więcej próbek nie dodaje dużo informacji do zestawu danych. Możesz to sprawdzić, budując jeden model ze wszystkimi próbkami i drugi model z tylko jedną próbką na osobę i porównując ich wydajność.
cbeleites wspiera Monikę

@James: (część 2) Jeśli uważasz, że próbki jednej osoby są raczej do siebie podobne, powinieneś zadbać o to, aby zestawy walidacyjne i szkoleniowe nie dzieliły personse (tj. Wszystkie próbki jednej osoby są w trakcie szkolenia lub w zestaw testowy).
cbeleites obsługuje Monikę

Dziękuję, że do mnie wróciłeś. Moje dane mają dość wysoki stopień zmienności ze znacznym nakładaniem się przestrzeni próbnej między klasami użytkowników. Ale przepraszam, zamiast zmniejszać próbki, miałem na myśli zmniejszenie rozdzielczości 14000 punktów danych, więc powiedzmy, że tylko co drugi, trzeci lub czwarty punkt były używane w PCA, ale z taką samą liczbą rzeczywistych próbek użytkownika. Byłem ciekawy, czy taki spadek rozdzielczości miałby mieć pozytywny, negatywny czy wcale nie wpływać na wyniki PCA, biorąc pod uwagę, że moje wymiary są już znacznie większe niż w moich próbkach.
James

1
@James, to znowu zależy. Ale zamiast używać tylko każdego n punktu, zalecałbym uśrednianie / grupowanie co n punktów, aby zmniejszyć wymiarowość i zwiększyć stosunek sygnału do szumu. Ustalenie, jakiej (niezależnie od wymiaru punktu danych; wstawiłbym tutaj „spektralną”) rozdzielczość, której potrzebujesz, to IMHO, jeden punkt charakteryzacji twojej charakterystyki problemu / danych / klasyfikatora. th
cbeleites wspiera Monikę

9

Jeśli jest liczbą punktów, a jest liczbą wymiarów, a to liczba głównych składników o niezerowej wariancji nie może przekraczać (podczas wykonywania PCA na surowych danych) lub (podczas wykonywania PCA na wyśrodkowane dane - jak zwykle).p n p n n - 1npnpnn1


2
Innymi słowy, 100 komputerów pokrywa całą wariancję w zestawie danych o rozmiarze (100 x 1400). Matematycznie nie może istnieć żadna dodatkowa wariancja w tym zbiorze danych. Rzeczy mogą się różnić, jeśli spojrzysz na wariancję w populacji naziemnej, która jest próbkowana przez twój zestaw danych.
cbeleites obsługuje Monikę

2
@ ttnphns: Czy znasz cytat z tym, co tu mówisz?
Patrick


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.