Jakiego wyboru zmiennych / cech preferujesz do klasyfikacji binarnej, gdy w zestawie do nauki jest o wiele więcej zmiennych / cech niż obserwacji? Celem jest omówienie procedury wyboru funkcji, która najlepiej redukuje błąd klasyfikacji.
Możemy poprawić notacje dla spójności: dla , niech będą zestawem uczącym się obserwacji z grupy . Zatem jest rozmiarem zestawu do nauki. Ustawiamy jako liczbę cech (tj. Wymiar przestrzeni cech). Niech oznacza -tą współrzędną .{ x i 1 , … , x i n i } i n 0 + n 1 =p x [ i ]x ∈ R p
Podaj pełne referencje, jeśli nie możesz podać szczegółów.
EDYCJA (stale aktualizowana): Procedury zaproponowane w odpowiedziach poniżej
- Chciwy wybór do przodu Zmienna procedura wyboru do klasyfikacji binarnej
- Eliminacja wsteczna Zmienna procedura selekcji do klasyfikacji binarnej
- Skanowanie Metropolis / MCMC Zmienna procedura wyboru do klasyfikacji binarnej
- karana regresja logistyczna Zmienna procedura selekcji do klasyfikacji binarnej
Ponieważ jest to wiki społeczności, może być więcej dyskusji i aktualizacji
Mam jedną uwagę: w pewnym sensie wszyscy poddajecie się procedurze, która pozwala na uporządkowanie zmiennych, ale nie na selekcję zmiennych (jesteś dość wymijający, jak wybrać liczbę funkcji, myślę, że wszyscy używacie weryfikacji krzyżowej?) Czy możesz poprawić odpowiedzi w tym kierunku? (ponieważ jest to wiki społeczności, nie musisz być pisarzem odpowiedzi, aby dodać informacje o tym, jak wybrać liczbę zmiennych? Otworzyłem tutaj pytanie w tym kierunku Krzyżowanie weryfikacji w bardzo dużym wymiarze (aby wybrać liczbę zastosowane zmienne w bardzo wysokiej klasyfikacji wymiarowej) )
źródło
Odpowiedzi:
Bardzo popularnym podejściem jest regresyjna regresja logistyczna, w której maksymalizuje się sumę prawdopodobieństwa logarytmicznego i terminu karnego składającego się z normy L1 („lasso”), normy L2 („grzbiet”), kombinacji dwóch („elastyczny”) lub kara związana z grupami zmiennych („grupa lasso”). Takie podejście ma kilka zalet:
źródło
Z kilku powodów preferuję Random Forests Leo Breimana i Adele Cutleer:
Niektórzy autorzy twierdzili, że działał on równie dobrze, jak karany SVM lub Gradient Boosting Machines (patrz np. Cutler i in., 2009, w ostatnim punkcie).
Pełny zakres jego zastosowań lub zalet może być nie na temat, więc sugeruję Elementy uczenia statystycznego od Hastie i in. (rozdz. 15) i Sayes i in. (2007) do dalszych lektur.
Last but not least, ma ładną implementację w języku R z pakietem randomForest . Inne pakiety R również rozszerzyć lub wykorzystać go np partię i daszek .
Referencje:
Cutler, A., Cutler, DR i Stevens, JR (2009). Metody oparte na drzewach, w wysokowymiarowej analizie danych w Cancer Research , Li, X. i Xu, R. (red.), Str. 83-101, Springer.
Saeys, Y., Inza, I. i Larrañaga, P. (2007). Przegląd technik wyboru funkcji w bioinformatyce. Bioinformatics , 23 (19) : 2507-2517.
źródło
Skanowanie metropolii / MCMC
dE
różnicę błąd w nowym zestawie minus błąd w poprzednim zestawie.min(1;exp(-beta*dE))
zaakceptuj tę zmianę, w przeciwnym razie odrzuć ją i wypróbuj inną losową zmianę.Możesz go rozszerzyć za pomocą mądrzejszej kontroli
beta
parametru. Prostszym sposobem jest użycie symulowanego wyżarzania, gdy zwiększaszbeta
(obniżasz temperaturę w analogii fizycznej) w czasie, aby zmniejszyć wahania i doprowadzić algorytm do minimum. Trudniej jest używać wymiany replik .źródło
Jeśli jesteś zainteresowany jedynie wydajnością uogólniającą, prawdopodobnie lepiej nie będzie dokonywać wyboru funkcji i zamiast tego używać regularyzacji (np. Regresji grzbietu). W środowisku uczenia maszynowego pojawiło się kilka otwartych wyzwań związanych z wyborem funkcji, a metody, które opierają się raczej na regularyzacji niż na wyborze funkcji, generalnie działają co najmniej równie dobrze, jeśli nie lepiej.
źródło
Chciwy wybór do przodu.
Kroki dla tej metody to:
źródło
Eliminacja wsteczna.
Zacznij od pełnego zestawu, a następnie trenuj iteracyjnie klasyfikator na temat pozostałych funkcji i usuń funkcję o najmniejszym znaczeniu, zatrzymaj się, gdy błąd klasyfikatora gwałtownie wzrośnie / stanie się nie do przyjęcia.
Ważność można uzyskać nawet poprzez iteracyjne usuwanie każdej funkcji i sprawdzanie wzrostu błędu lub dostosowywanie go z klasyfikatora, jeśli powoduje to (tak jak w przypadku Losowego lasu).
źródło
(n - k - p) / (k - 1) * ...
zn
liczbą obserwacji,k
liczbą klas (tutaj 2) ip
liczbą zmiennych.n - 2 - p < 0
kiedyn < p + 2
(co ma miejsce w tym przypadku), co prowadzi doF < 0
. Czy to nie byłby problem?