Mam rzadkie cechy, które są predykcyjne, mam też pewne gęste cechy, które są również predykcyjne. Muszę połączyć te funkcje razem, aby poprawić ogólną wydajność klasyfikatora.
Rzecz w tym, że kiedy próbuję połączyć je ze sobą, cechy gęste mają tendencję do dominacji nad cechami rzadkimi, a zatem dają tylko 1% poprawę AUC w porównaniu do modelu z cechami tylko gęstymi.
Czy ktoś napotkał podobne problemy? Naprawdę doceniam nakłady, jakby utknęły. Próbowałem już wielu różnych klasyfikatorów, kombinacji klasyfikatorów, transformacji cech i przetwarzania przy użyciu różnych algorytmów.
Z góry dziękuję za pomoc.
Edytuj :
Próbowałem już sugestii podanych w komentarzach. Zauważyłem, że dla prawie 45% danych rzadkie cechy działają naprawdę dobrze, otrzymuję AUC około 0,9 z tylko rzadkimi cechami, ale dla pozostałych gęste cechy działają dobrze z AUC około 0,75. W pewnym sensie próbowałem wyodrębnić te zestawy danych, ale otrzymuję AUC równe 0,6, więc nie mogę po prostu wytrenować modelu i zdecydować, których funkcji użyć.
Jeśli chodzi o fragment kodu, wypróbowałem tak wiele rzeczy, że nie jestem pewien, co dokładnie udostępnić :(
źródło
Odpowiedzi:
To wydaje się być zadaniem dla głównej analizy składników. W Scikit PCA jest dobrze zaimplementowane i pomogło mi wiele razy.
PCA w pewien sposób łączy twoje funkcje. Ograniczając liczbę komponentów, pobierasz model z danymi pozbawionymi szumów (w najlepszym przypadku). Ponieważ twój model jest tak dobry, jak twoje dane.
Rozważ poniżej prosty przykład.
Dlaczego wybrałem 80? Kiedy wykreślam wariancję skumulowaną, mam to poniżej, co mówi mi, że przy ~ 80 składnikach osiągam prawie całą wariancję.
Powiedziałbym więc, że spróbuj, użyj go w swoich modelach. To powinno pomóc.
źródło
Najlepszym sposobem na połączenie cech jest zastosowanie metod grupowania. Zasadniczo istnieją trzy różne metody: pakowanie, wzmacnianie i układanie w stosy. Możesz albo skorzystać z Adabbost wzbogaconego o wybór funkcji (w tym względzie zarówno cechy rzadkie, jak i gęste) lub układać na stosie (funkcja losowa - losowa podprzestrzeń) Wolę drugą opcję, którą możesz wyszkolić zestaw podstawowych uczniów (decyzje. Drzewa) za pomocą losowych podzbiory i funkcja losowa (utrzymuj bazę uczniów, dopóki nie obejmiesz całego zestawu funkcji) Kolejnym krokiem jest przetestowanie zestawu szkoleniowego w celu wygenerowania metadanych. Użyj tych metadanych, aby wytrenować meta klasyfikator. Meta klasyfikator dowie się, która cecha jest ważniejsza i jakiego rodzaju relacji należy użyć
źródło
Grupy zmiennych mogą być wielokoliniowe lub konwersja między rzadką a gęstą może się nie powieść. Czy zastanawiałeś się nad zastosowaniem klasyfikatora / zestawu do głosowania? http://scikit-learn.org/stable/modules/ensemble.html W ten sposób można rozwiązać oba powyższe problemy.
źródło
Oprócz niektórych powyższych sugestii zaleciłbym zastosowanie dwuetapowego podejścia do modelowania .
źródło
Wypróbuj PCA tylko na rzadkich funkcjach i połącz wyjście PCA z gęstymi funkcjami.
Otrzymasz gęsty zestaw (oryginalnych) funkcji + gęsty zestaw funkcji (które pierwotnie były rzadkie).
+1 za pytanie. Zaktualizuj nas o wyniki.
źródło