5

Mam ogromny zestaw danych (32000 * 2500), którego potrzebuję do szkolenia. Wydaje się, że to zbyt wiele dla mojego klasyfikatora, więc zdecydowałem się na lekturę dotyczącą redukcji wymiarów, a konkretnie na PCA.Wybór komponentów pokazujących największą różnicę w PCA

Z mojego rozumienia, PCA wybiera bieżące dane i umieszcza je w innej (x, y) domenie/skali. Te nowe współrzędne nie mają znaczenia, ale dane są przegrupowywane w celu uzyskania maksymalnej zmiany jednej osi. Po tych nowych współczynnikach mogę upuścić cooeff o minimalnej zmienności.

Teraz próbuję wprowadzić to w MatLab i mam problem z dostarczonym wyjściem. MatLab zawsze traktuje wiersze jako obserwacje i kolumny jako zmienne. Więc moją funkcją Inout do pca będzie moja matryca o rozmiarze (32000*2500). Powoduje to zwrócenie współczynników PCA w macierzy wyjściowej o rozmiarze 2500*2500.

Pomoc dla państw PCA:

Każda kolumna zawiera współczynniki Współczynnik dla jednego głównego komponentu, a kolumny są w porządku malejącym składnika wariancji.

W tym wyjściu, jaki wymiar stanowią obserwacje moich danych? Mam na myśli, jeśli muszę dać to do klasyfikatora, czy wiersze coeff reprezentują moje obserwacje danych lub czy to teraz kolumny coeff?

Jak usunąć współczynniki o najmniejszej zmienności?

Odpowiedz

5

(Zastrzeżenie: to było dawno przeszedłem z Matlab do scipy, ale zasady są takie same.)

Jeśli używasz svd function

[U,S,V] = svd(X) 

następnie zmniejszyć wymiar X do k, pomnożysz przez pierwsze kolumny k z V. W Matlab, zgaduję, że to

X * V(:, 1: k); 

Patrz Elements of Statistical Learning dla teorii.

+0

To prawda. Dobra robota Ami. +1. – rayryeng

+0

@rayryeng :-) Dziękujemy! –

Powiązane problemy