Mam zestaw danych zawierający głównie zmienne finansowe (120 funkcji, 4k przykładów), które są w większości wysoce skorelowane i bardzo głośne (na przykład wskaźniki techniczne), dlatego chciałbym wybrać około 20-30 do późniejszego użycia ze szkoleniem modelu (klasyfikacja binarna) - zwiększyć zmniejszyć).
Myślałem o użyciu losowych lasów do rankingu funkcji. Czy warto używać ich rekurencyjnie? Na przykład, powiedzmy w pierwszej rundzie, że upuszczam najgorsze 20%, także drugą itd., Dopóki nie otrzymam pożądanej liczby funkcji. Czy powinienem stosować walidację krzyżową z RF? (Intuicyjne jest dla mnie to, że nie używam CV, ponieważ tak już robi RF.)
Również jeśli korzystam z losowych lasów, czy powinienem ich używać jako klasyfikatorów dla pliku binarnego lub regresora dla rzeczywistego wzrostu / spadku, aby uzyskać ważność funkcji?
Nawiasem mówiąc, modelami, które chciałbym wypróbować po wybraniu funkcji, są: SVM, sieci neuronowe, lokalnie ważone regresje i losowy las. Pracuję głównie w Pythonie.
built-in
atrybutu RandomForestClassifier wsklearn
nazwiefeature_importances_
....? Zobaczysz to w linku.multicollinearity
może zniekształcać import funkcji i wybór funkcji. sprawdź to tutajOdpowiedzi:
Do wyboru funkcji potrzebujemy funkcji oceniania, a także metody wyszukiwania w celu optymalizacji funkcji oceniania.
Możesz użyć RF jako metody rankingu cech, jeśli zdefiniujesz odpowiedni wynik ważności. RF wybierze funkcje oparte na losowej metodzie zastępowania i zgrupuje każdy podzbiór w osobnej podprzestrzeni (zwanej podprzestrzenią losową). Jedna ważna funkcja oceniania może opierać się na przypisywaniu dokładności każdego drzewa dla każdej cechy w tej losowej podprzestrzeni. Następnie robisz to dla każdego osobnego drzewa. Ponieważ źródło generowania podprzestrzeni jest losowe, możesz wyznaczyć próg obliczania wyniku ważności.
Streszczenie:
Krok 1 : Jeśli funkcja X2 pojawi się w 25% drzew, zdobądź ją. W przeciwnym razie nie rozważaj uszeregowania funkcji, ponieważ nie mamy wystarczających informacji o jej wydajności
Krok 2 : Teraz przypisz wynik każdemu drzewu, w którym X2 pojawia się X2, i uśrednij wynik. Na przykład: perf (Tree1) = 0,85 perf (Tree2) = 0,70 perf (Tree3) = 0,30
Następnie znaczenie cechy X2 = (0,85 + 0,70 + 0,30) / 3 = 0,6167
Możesz rozważyć bardziej zaawansowane ustawienie, włączając głębokość podziału obiektu lub wartość przyrostu informacji w drzewie decyzyjnym. Istnieje wiele sposobów zaprojektowania funkcji oceniania w oparciu o drzewa decyzyjne i RF.
Jeśli chodzi o metodę wyszukiwania, metoda rekurencyjna wydaje się rozsądna jako sposób na wybranie najwyżej ocenianych.
Na koniec możesz użyć RF jako klasyfikatora lub modelu regresji przy wyborze swoich funkcji, ponieważ obie z nich zapewniłyby ci wynik wydajności. Wynik jest orientacyjny, ponieważ opiera się na próbkach OOB wypakowanych z torby i nie można rozważyć weryfikacji krzyżowej w prostszym ustawieniu.
źródło
(0.85+0.70+0.30)/3 = 0.6167
.Przykłady 4k to naprawdę za mało, aby oszacować coś bardzo zaawansowanego - musisz użyć najprostszych możliwych modeli (regresja liniowa / logistyczna, liniowy svm) i małej liczby zmiennych
Biorąc pod uwagę, że dane są zaszumione i skorelowane, PCA jest prawdopodobnie najlepszym rozwiązaniem [skutecznie identyfikuje wspólne sygnały uśredniane dla poszczególnych wskaźników]
Regularyzacja L2 (dla modelu liniowego) pomoże również uśrednić szum [np. Jeśli masz n głośnych kopii tego samego sygnału, regularyzacja L2 zachęci do zachowania takich samych wag - uśrednienie tych n zmiennych]
źródło