W ostatnim konkursie Kaggle (ręcznie) zdefiniowałem 10 dodatkowych funkcji dla mojego zestawu treningowego, które następnie zostaną wykorzystane do wyszkolenia losowego klasyfikatora lasów. Postanowiłem uruchomić PCA w zestawie danych z nowymi funkcjami, aby zobaczyć, jak się ze sobą porównują. Odkryłem, że ~ 98% wariancji było przenoszone przez pierwszy składnik (pierwszy wektor własny). Następnie kilkakrotnie trenowałem klasyfikator, dodając jedną funkcję na raz, i korzystałem z walidacji krzyżowej i błędu RMS, aby porównać jakość klasyfikacji. Przekonałem się, że klasyfikacje poprawiły się z każdą dodatkową funkcją i że końcowy wynik (ze wszystkimi 10 nowymi funkcjami) był znacznie lepszy niż pierwszy test z (powiedzmy) 2 funkcjami.
Biorąc pod uwagę, że PCA twierdziło, że ~ 98% wariancji dotyczyło pierwszego składnika mojego zbioru danych, dlaczego jakość klasyfikacji tak bardzo się poprawiła?
Czy dotyczy to innych klasyfikatorów? RF skaluje się na wielu rdzeniach, więc trenowanie jest znacznie szybsze niż (powiedzmy) SVM.
Co jeśli przekształciłbym zestaw danych w przestrzeń „PCA” i uruchomiłbym klasyfikator na przestrzeni przekształconej. Jak zmieniłyby się moje wyniki?
źródło
Odpowiedzi:
Podczas modelowania predykcyjnego próbujesz wyjaśnić zmienność odpowiedzi, a nie zmienność funkcji. Nie ma powodu sądzić, że wtłoczenie tak dużej liczby wariantów funkcji w jedną nową funkcję uchwyci dużą moc predykcyjną funkcji jako całości.
Wyjaśnia się to często jako różnicę między regresją głównego elementu zamiast częściowych najmniejszych kwadratów.
źródło
Boruta
. Nie uważam ich też za użytecznych. Uważam za nieuzasadnione, aby wierzyć, że jakakolwiek funkcja nie ma żadnego efektu. Mogę wierzyć, że podkreślenie niektórych funkcji w stosunku do innych może być przydatne, ale podstawowy algorytm randomForest robi to już całkiem dobrze. Jeśli jesteś tak głęboko zaangażowany w modelowanie i chcesz większej wydajności, sugerowałbym zestawianie innych algorytmów, na przykład przyspieszonych drzew, z twoim randomForest.Pierwszym głównym elementem jest liniowa kombinacja wszystkich funkcji. Fakt, że wyjaśnia prawie całą zmienność, oznacza po prostu, że większość współczynników zmiennych w pierwszym głównym składniku jest znacząca.
Teraz generowane przez ciebie drzewa klasyfikacyjne są trochę innym zwierzęciem. Dokonują podziałów binarnych na ciągłe zmienne, które najlepiej oddzielają kategorie, które chcesz sklasyfikować. Nie jest to dokładnie to samo, co znalezienie ortogonalnych kombinacji liniowych zmiennych ciągłych, które dają kierunek największej wariancji. W rzeczywistości ostatnio dyskutowaliśmy o artykule na temat CV, w którym do analizy skupień wykorzystano PCA, a autor (autorzy) stwierdzili, że istnieją sytuacje, w których najlepsze rozdzielenie nie występuje w pierwszych kilku głównych składnikach, ale w ostatnich.
źródło