Zmienna procedura selekcji do klasyfikacji binarnej

29

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 =i{0,1}{x1i,,xnii}ip x [ i ]n0+n1=npx[i]x R pixRp

Podaj pełne referencje, jeśli nie możesz podać szczegółów.

EDYCJA (stale aktualizowana): Procedury zaproponowane w odpowiedziach poniżej

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) )

robin girard
źródło
Czy to pytanie czy pula? Jeśli to drugie, powinno to być wiki społeczności. Jeśli pierwszy, podaj więcej szczegółów na temat tego, co chcesz osiągnąć? Na przykład, czy jest to wybór odpowiedni, czy raczej minimalnie optymalny? Ile kosztuje Jak trudny jest problem z klasyfikacją?
pula ... wiele oznacza 1000 cech lub więcej i mniej niż 100 obserwacji.
robin girard

Odpowiedzi:

18

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:

  1. Ma silne właściwości teoretyczne, np. Patrz ten artykuł Candes & Plan i bliskie powiązania z detekcją skompresowaną;
  2. Ma dostępne ekspozycje, np. W Elements of Statistics Learning autorstwa Friedmana-Hastie-Tibshirani (dostępne online);
  3. Ma łatwo dostępne oprogramowanie do modeli. R ma pakiet glmnet , który jest bardzo szybki i działa dobrze z dość dużymi zestawami danych. Python ma scikit-learn , który obejmuje regresję logistyczną penalizowaną przez L1 i L2;
  4. Działa bardzo dobrze w praktyce, jak pokazano w wielu dokumentach aplikacyjnych dotyczących rozpoznawania obrazów, przetwarzania sygnałów, biometrii i finansów.
niezadowolony
źródło
10

Z kilku powodów preferuję Random Forests Leo Breimana i Adele Cutleer:

  • pozwala sobie poradzić z predyktorami jakościowymi i ciągłymi, a także z niezrównoważoną wielkością próby klasowej;
  • jako metoda ensemble / embedded, sprawdzanie poprawności jest osadzone i pozwala oszacować błąd uogólnienia;
  • jest stosunkowo niewrażliwy na parametry dostrajania (% zmiennych wybranych do uprawy drzewa, liczba zbudowanych drzew);
  • zapewnia oryginalną miarę ważności zmiennych i jest w stanie odkryć złożone interakcje między zmiennymi (chociaż może to prowadzić do trudnych do odczytania wyników).

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.

chl
źródło
7

Skanowanie metropolii / MCMC

  • Wybierz losowo kilka funkcji na początek, klasyfikuj pociągi tylko na nich i uzyskaj błąd.
  • Dokonaj losowych zmian w tym zestawie roboczym - albo usuń jedną funkcję, dodaj losowo inną lub zamień jedną z funkcji, która nie jest aktualnie używana.
  • Trenuj nowy klasyfikator i uzyskaj jego błąd; zapisz dEróżnicę błąd w nowym zestawie minus błąd w poprzednim zestawie.
  • Prawdopodobnie min(1;exp(-beta*dE))zaakceptuj tę zmianę, w przeciwnym razie odrzuć ją i wypróbuj inną losową zmianę.
  • Powtórz to przez długi czas i w końcu zwróć zestaw roboczy, który globalnie osiągnął najmniejszy błąd.

Możesz go rozszerzyć za pomocą mądrzejszej kontroli betaparametru. Prostszym sposobem jest użycie symulowanego wyżarzania, gdy zwiększasz beta(obniżasz temperaturę w analogii fizycznej) w czasie, aby zmniejszyć wahania i doprowadzić algorytm do minimum. Trudniej jest używać wymiany replik .

użytkownik88
źródło
5

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.

Dikran Torbacz
źródło
3

Chciwy wybór do przodu.

Kroki dla tej metody to:

  • Upewnij się, że masz zestaw pociągu i sprawdzania poprawności
  • Powtórz następujące czynności
    • Przećwicz klasyfikator z każdą osobną funkcją osobno, która nie jest jeszcze wybrana i ze wszystkimi poprzednio wybranymi funkcjami
    • Jeśli wynik się poprawi, dodaj najlepiej działającą funkcję, w przeciwnym razie zatrzymaj procedurę
Peter Smit
źródło
Jak „szkolisz” swojego klasyfikatora? Przypuszczalnie odbywa się to na zestawie treningowym. Jeśli jest to maszyna wektora wsparcia (SVM), istnieje kilka parametrów do wypróbowania podczas treningu. Czy każde z nich jest testowane pod kątem walidacji (testu)? A może używasz walidacji krzyżowej k-fold? Ile razy używasz zestawu sprawdzania poprawności (testu) do sprawdzania wydajności - przypuszczalnie jest to dokładność. Przykro mi, że jestem pedantyczny, ale jest to źle zdefiniowana odpowiedź i grozi zbytnim dopasowaniem.
Thylacoleo,
@Thylacoleo Jest to bardzo prymitywna podstawowa i chciwa metoda. Często utrzymujesz to samo ustawienie sprawdzania poprawności, ale cokolwiek chcesz, jest w porządku.
Peter Smit,
2

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).

użytkowników88
źródło
2
Ale pytanie mówi, że jest więcej zmiennych niż obserwacji. Dlatego nie można rozpocząć od pełnego zestawu.
Rob Hyndman,
Jaki jest problem?
2
Nie można dopasować modelu, który ma więcej zmiennych niż obserwacje. Stopień swobody jest niewystarczający do oszacowania parametru.
Rob Hyndman,
1
W obliczeniach F Fishera obliczasz F jak (n - k - p) / (k - 1) * ...z nliczbą obserwacji, kliczbą klas (tutaj 2) i pliczbą zmiennych. n - 2 - p < 0kiedy n < p + 2(co ma miejsce w tym przypadku), co prowadzi do F < 0. Czy to nie byłby problem?
Matthieu,
3
Uregulowana lub w pełni regresja Bayesa pozwoliłaby uzyskać unikalne rozwiązanie z pełnym zestawem predyktorów na początek - bez wątpienia to samo dotyczy niektórych innych technik ML.
Scortchi - Przywróć Monikę