Wybór funkcji dla maszyn wektorowych wsparcia


9

Moje pytanie jest trzykrotne

W kontekście „jądra” obsługują maszyny wektorowe

  1. Czy pożądany jest wybór zmiennych / cech - zwłaszcza, że ​​regulujemy parametr C, aby zapobiec nadmiernemu dopasowaniu, a głównym motywem wprowadzenia jądra do SVM jest zwiększenie wymiarów problemu, w takim przypadku zmniejszenie wymiarów poprzez redukcję parametrów wydaje się sprzeczne z intuicją
  2. Jeśli odpowiedź na pierwsze pytanie brzmi „NIE”, to na jakich warunkach odpowiedź zmieniłaby się, o której należy pamiętać?
  3. Czy są jakieś dobre metody, które próbowano doprowadzić do zmniejszenia funkcji SVM w bibliotece scikit-learn Pythona - wypróbowałem metodę SelectFpr i szukam ludzi z doświadczeniem z różnymi metodami.

1
Wybór funkcji zawsze pomoże, chyba że początkowe funkcje będą na początku bardzo wysokiej jakości. Sklearn oferuje wiele różnych bibliotek wyboru funkcji ( scikit-learn.org/stable/modules/feature_selection.html ) Sam jestem częściowo zwolennikiem RFE.
David

1
Nie wspomniałeś o swoim kontekście - zauważ, że jeśli jest to kontekst biznesowy, każda funkcja pozostająca w modelu będzie wymagała konserwacji na pewnym poziomie - jeśli masz więcej zmiennych, wiąże się to z literalnym kosztem pieniężnym, w tym sensie, że wymaga na przykład więcej wysiłku w zakresie gromadzenia danych, czasu DBA i czasu programowania. Ta uwaga oczywiście nie ma zastosowania, jeśli chodzi o kompozycję Kaggle lub podobną, a jeśli użycie dodatkowych 200 dostępnych funkcji w zestawie danych daje wzrost o 0,01% wydajności, to pieniądze.
Robert de Graaf

Odpowiedzi:


3

Osobiście lubię dzielić wybór funkcji na dwie części:

  • bez nadzoru wybór funkcji
  • nadzorowany wybór funkcji

Nienadzorowany wybór funkcji to takie jak klastrowanie lub PCA, w którym wybierasz najmniej nadmiarowy zakres funkcji (lub tworzysz funkcje z niewielką redundancją). Nadzorowany wybór funkcji to rzeczy takie jak Lasso, w których wybiera się funkcje o najbardziej przewidywalnej mocy.

Osobiście zazwyczaj wolę wybór nadzorowanego wyboru funkcji. Tak więc, stosując regresję liniową, wybrałbym cechy oparte na Lasso. Istnieją podobne metody indukowania rzadkości w sieciach neuronowych.

Ale tak naprawdę nie rozumiem, jak bym to zrobił w metodzie wykorzystującej jądra, więc prawdopodobnie lepiej jest użyć tego, co nazywam wyborem funkcji bez nadzoru.

EDYCJA: zapytałeś także o regularyzację. Uważam, że regularyzacja pomaga przede wszystkim dlatego, że pracujemy ze skończonymi próbkami, dlatego rozkład szkoleń i testów zawsze będzie się nieco różnić, a Ty chcesz, aby Twój model nie pasował. Nie jestem pewien, czy to eliminuje potrzebę unikania wybierania funkcji (jeśli rzeczywiście masz ich zbyt wiele). Myślę, że wybranie funkcji (lub utworzenie ich mniejszego podzbioru) pomaga, czyniąc funkcje bardziej niezawodnymi i unikając modelu uczenia się na podstawie fałszywych korelacji. Tak więc regularyzacja pomaga, ale nie jest pewna, czy jest to kompletna alternatywa. Ale nie zastanawiałem się wystarczająco nad tym.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.