Mam zestaw danych, dla którego mam wiele zestawów etykiet binarnych. Dla każdego zestawu etykiet uczę klasyfikatora, oceniając go poprzez walidację krzyżową. Chcę zmniejszyć wymiarowość za pomocą analizy głównych składników (PCA). Moje pytanie brzmi:
Czy możliwe jest wykonanie PCA raz dla całego zestawu danych, a następnie użycie nowego zestawu danych o niższych wymiarach do weryfikacji krzyżowej, jak opisano powyżej? Czy też muszę zrobić osobny PCA dla każdego zestawu treningowego (co oznaczałoby zrobienie osobnego PCA dla każdego klasyfikatora i dla każdego foldu walidacji krzyżowej)?
Z jednej strony PCA nie korzysta z etykiet. Z drugiej strony wykorzystuje dane testowe do transformacji, więc obawiam się, że mogłoby to wpłynąć na wyniki.
Powinienem wspomnieć, że oprócz zaoszczędzenia trochę pracy, wykonanie PCA raz dla całego zestawu danych pozwoliłoby mi wizualizować zestaw danych dla wszystkich zestawów etykiet jednocześnie. Jeśli mam inny PCA dla każdego zestawu etykiet, musiałbym wizualizować każdy zestaw etykiet osobno.
caret
pakiecie R z pakietem: PCA i k-fold Cross Validation w Caret .Odpowiedzi:
Aby zmierzyć błąd uogólnienia, musisz zrobić to drugie: osobny PCA dla każdego zestawu treningowego (co oznaczałoby zrobienie osobnego PCA dla każdego klasyfikatora i każdego foldera CV).
Następnie zastosować tę samą transformację do zestawu testowego: czyli robisz nie zrobić oddzielną PCA na zestawie testowym! Odejmujesz średnią (iw razie potrzeby dzielisz przez odchylenie standardowe) zestawu treningowego, jak wyjaśniono tutaj: zero centrowania zestawu testowego po PCA na zestawie treningowym . Następnie rzutujesz dane na komputery PC zestawu treningowego.
Konieczne będzie zdefiniowanie automatycznego kryterium liczby używanych komputerów.
Ponieważ jest to tylko pierwszy krok redukcji danych przed „faktyczną” klasyfikacją, użycie kilku zbyt wielu komputerów prawdopodobnie nie zaszkodzi wydajności. Jeśli spodziewasz się, ile komputerów byłoby dobrych z doświadczenia, możesz po prostu tego użyć.
Możesz także później sprawdzić, czy konieczne było ponowne wykonanie PCA dla każdego modelu zastępczego (powtórzenie analizy tylko z jednym modelem PCA). Myślę, że wynik tego testu jest wart zgłoszenia.
Kiedyś zmierzyłem błąd systematyczny powtarzania PCA i stwierdziłem, że dzięki moim spektroskopowym danym klasyfikacyjnym wykryłem tylko połowę poziomu błędu uogólnienia, gdy nie powtarzałem PCA dla każdego modelu zastępczego.
To powiedziawszy, możesz zbudować dodatkowy model PCA całego zestawu danych do celów opisowych (np. Wizualizacji). Upewnij się tylko, że oba podejścia są od siebie oddzielone.
Ale widzi dane. A jeśli wariancja między klasami jest duża w porównaniu z wariancją wewnątrz klasy, wariancja między klasami wpłynie na projekcję PCA. Zwykle krok PCA jest wykonywany, ponieważ musisz ustabilizować klasyfikację. Oznacza to, że w sytuacji, w której dodatkowe przypadki zrobić wpływać na model.
Jeśli wariancja międzyklasowa jest niewielka, to odchylenie nie będzie duże, ale w takim przypadku PCA nie pomogłoby również w klasyfikacji: projekcja PCA nie może więc pomóc w podkreśleniu podziału między klasami.
źródło
Odpowiedź na to pytanie zależy od projektu eksperymentalnego. PCA można wykonać na całym zestawie danych, o ile nie trzeba budować modelu przed znajomością danych, które próbujesz przewidzieć. Jeśli masz zestaw danych, w którym masz kilka próbek, z których niektóre są znane, a niektóre są nieznane, i chcesz przewidzieć niewiadome, w tym niewiadome w PCA zapewni Ci bogatszy widok różnorodności danych i może pomóc poprawić wydajność modelu. Ponieważ PCA nie jest nadzorowane, nie „osiąga szczytów”, ponieważ możesz zrobić to samo z nieznanymi próbkami, jak możesz ze znanymi.
Jeśli z drugiej strony masz zestaw danych, w którym musisz teraz zbudować model, aw pewnym momencie w przyszłości otrzymasz nowe próbki, które musisz przewidzieć za pomocą tego wstępnie zbudowanego modelu, musisz wykonać osobne PCA w każdej zakładce aby mieć pewność, że się uogólni. Ponieważ w tym przypadku nie będziemy wiedzieć, jak mogą wyglądać nowe funkcje i nie możemy odbudować modelu, aby uwzględnić nowe funkcje, wykonanie PCA na danych testowych byłoby „osiągnięciem szczytowym”. W takim przypadku zarówno cechy, jak i wyniki dla nieznanych próbek nie są dostępne, gdy model zostanie zastosowany w praktyce, więc nie powinny być dostępne podczas szkolenia modelu.
źródło
Zrób to drugie, PCA na zestawie treningowym za każdym razem
W PCA uczymy się zredukowanej macierzy: U, która pomaga nam uzyskać projekcję
Z_train = U x X_train
W czasie testu używamy tego samego U, którego nauczył się z fazy treningowej, a następnie obliczamy projekcję
Z_test = U x X_test
Zasadniczo więc projektujemy zestaw testowy na zmniejszoną przestrzeń cech uzyskaną podczas szkolenia.
Podstawowym założeniem jest to, że zestaw testowy i pociągowy powinny pochodzić z tego samego rozkładu, co wyjaśnia powyższą metodę.
źródło