Czy nadal musimy dokonywać wyboru funkcji, korzystając z algorytmów regularyzacyjnych?

20

Mam jedno pytanie dotyczące potrzeby korzystania z metod wyboru funkcji (losowe wartości ważności cech lasów lub metody wyboru cech Univariate itp.) Przed uruchomieniem algorytmu uczenia statystycznego.

Wiemy, że aby uniknąć przeregulowania, możemy wprowadzić karę regularyzacyjną dla wektorów masy.

Więc jeśli chcę zrobić regresję liniową, mógłbym wprowadzić parametry L2 lub L1, a nawet parametry regularyzacji elastycznej sieci. Aby uzyskać rzadkie rozwiązania, kara L1 pomaga w wyborze funkcji.

Czy nadal konieczne jest dokonanie wyboru funkcji przed uruchomieniem regresji L1 regresji i regresji, takiej jak Lasso ?. Technicznie rzecz biorąc, Lasso pomaga mi zmniejszyć funkcje o karę L1, dlaczego więc wybór funkcji jest potrzebny przed uruchomieniem algo?

Przeczytałem artykuł badawczy, który mówi, że robienie Anova, a następnie SVM, daje lepszą wydajność niż używanie samego SVM. Teraz pytanie brzmi: SVM z natury dokonuje normalizacji za pomocą normy L2. Aby zmaksymalizować margines, minimalizuje normę wektora ciężaru. Więc dokonuje regularności w swojej funkcji celu. Czy technicznie algorytmy, takie jak SVM, nie powinny przejmować się metodami wyboru funkcji ?. Ale raport wciąż mówi, że wybór funkcji Univariate Feature, zanim normalna SVM będzie silniejsza.

Ktoś z myślami?

Baktaawar
źródło
Chciałbym zadać jedno pytanie: w jaki sposób regularyzacja SVM działa z metodami jądra? Reg L2 reg opiera się na znormalizowanych wejściach. Jeśli jednak użyjesz jądra (np. Wielomianu), wówczas twoje efektywne dane wejściowe (tj. Moce wielomianowe) nie będą już znormalizowane.
seanv507

Odpowiedzi:

17

Wybór funkcji czasami poprawia wydajność modeli znormalizowanych, ale z mojego doświadczenia ogólnie pogarsza wydajność uogólnienia. Powodem tego jest to, że im więcej wyborów dokonujemy w odniesieniu do naszego modelu (w tym wartości parametrów, wybór funkcji, ustawienie hiperparametrów, wybór jądra ...), tym więcej danych musimy zrobić te wybory niezawodnie. Zasadniczo dokonujemy tych wyborów, minimalizując niektóre kryterium ocenione na podstawie skończonego zestawu danych, co oznacza, że ​​kryterium nieuchronnie ma niezerową wariancję. W rezultacie, jeśli zbyt agresywnie zminimalizujemy kryterium, możemy go przeregulować, tzn. Możemy dokonać wyborów, które minimalizują kryterium ze względu na cechy zależne od konkretnej próbki, na podstawie której jest ono oceniane, a nie dlatego, że wytworzy prawdziwa poprawa wydajności.

Teraz SVM jest przybliżoną implementacją ograniczenia wydajności generalizacji, która nie zależy od wymiarów, więc w zasadzie możemy spodziewać się dobrej wydajności bez wyboru funkcji, pod warunkiem, że parametry regularyzacji zostaną poprawnie wybrane. Większość metod wyboru funkcji nie ma takich „gwarancji” wydajności.

W przypadku metod L1 z pewnością nie zawracałbym sobie głowy wyborem funkcji, ponieważ kryterium L1 jest ogólnie skuteczne w przycinaniu funkcji. Powodem tego, że jest skuteczny, jest indukowanie kolejności, w której funkcje wchodzą i wychodzą z modelu, co zmniejsza liczbę dostępnych wyborów przy wybieraniu funkcji, a zatem jest mniej podatne na nadmierne dopasowanie.

Najlepszym powodem wyboru funkcji jest ustalenie, które funkcje są istotne / ważne. Najgorszym powodem wyboru funkcji jest poprawa wydajności, w przypadku modeli znormalizowanych na ogół pogarsza to sytuację. Jednak w przypadku niektórych zestawów danych może to mieć duże znaczenie, dlatego najlepiej jest wypróbować je i użyć solidnego, obiektywnego schematu oceny wydajności (np. Zagnieżdżonej weryfikacji krzyżowej), aby dowiedzieć się, czy Twój jest jednym z tych zestawów danych.

Dikran Torbacz
źródło
Co rozumiesz przez zagnieżdżoną walidację krzyżową? Czy stosuje N-krotną weryfikację krotności krotności?
yasin.yazici
5

jotβ^jot=.0001β^jot=0

Nadal istnieją jednak powody, aby całkowicie usunąć zmienną.

  1. Czasami celem nie jest dokładność prognostyczna, ale wyjaśnienie zjawiska światowego. Czasami chcesz wiedzieć, co robią zmienne i nie wpływają na określoną zmienną zależną. W tego rodzaju sytuacjach preferuje się oszczędny model rozumienia i interpretacji
  2. β^jot
  3. Przyczyny obliczeniowe - model z mniejszą liczbą zmiennych zazwyczaj działa szybciej i nie trzeba przechowywać danych dla tych obcych zmiennych.
TrynnaDoStat
źródło
2
Cześć TrynnaDoStat, całkowicie zgadzam się z twoim punktem 1 i 3. Ale argument 2 tak naprawdę nie trafia w sedno. Jeśli wybierzesz funkcję z tym samym zestawem danych, istnieje również ryzyko, że wybierzesz niewłaściwy zestaw funkcji. Ponieważ jedna zmienna losowa może wydawać się dobrze skorelowana ze zmienną celu w danych.
gstar2002
β^jot
0

Nie sądzę, że przeregulowanie jest powodem, dla którego potrzebujemy przede wszystkim wyboru funkcji. W rzeczywistości nadmierne dopasowanie jest czymś, co dzieje się, jeśli nie podamy naszemu modelowi wystarczającej ilości danych, a wybór funkcji dodatkowo zmniejsza ilość danych, które przekazujemy naszemu algorytmowi.

Zamiast tego powiedziałbym, że wybór funkcji jest potrzebny jako etap wstępnego przetwarzania dla modeli, które nie mają mocy, aby samodzielnie określać ważność funkcji, lub dla algorytmów, które stają się znacznie mniej wydajne, jeśli muszą samodzielnie dokonać ważenia wagi .

Weźmy na przykład prosty algorytm k-najbliższego sąsiada oparty na odległości euklidesowej. Zawsze będzie patrzeć na wszystkie cechy jako mające taką samą wagę lub wagę do ostatecznej klasyfikacji. Więc jeśli dasz mu 100 funkcji, ale tylko trzy z nich są istotne dla twojego problemu z klasyfikacją, wtedy cały hałas z tych dodatkowych funkcji całkowicie zagłuszy informacje z trzech ważnych funkcji i nie otrzymasz żadnych przydatnych prognoz. Jeśli zamiast tego określisz funkcje krytyczne i przekażesz tylko klasyfikatorowi, będzie on działał znacznie lepiej (nie wspominając o tym, że będzie znacznie szybszy).

Z drugiej strony spójrz na losowy klasyfikator lasu. Podczas treningu automatycznie określi, które funkcje są najbardziej przydatne, znajdując optymalny podział, wybierając z podzbioru wszystkich funkcji. Dlatego znacznie lepiej poradzi sobie z przesiewaniem 97 bezużytecznych funkcji, aby znaleźć trzy dobre. Oczywiście nadal będzie działał szybciej, jeśli dokonasz wyboru wcześniej, ale jego moc klasyfikacyjna zwykle nie ucierpi dużo, dając mu wiele dodatkowych funkcji, nawet jeśli nie są one istotne.

Na koniec spójrz na sieci neuronowe. Ponownie, jest to model, który ma moc ignorowania nieistotnych funkcji, a trening przez propagację wsteczną zwykle zbiega się z korzystaniem z interesujących funkcji. Wiadomo jednak, że standardowy algorytm uczący się zbiega znacznie szybciej, jeśli dane wejściowe są „wybielone”, tj. Skalowane do wariancji jednostkowej i z usuniętą korelacją krzyżową (LeCun i in., 1998) . Dlatego, chociaż nie musisz ściśle wybierać funkcji, może opłacić się czysto pod względem wydajności, aby wykonać wstępne przetwarzanie danych wejściowych.

Podsumowując, powiedziałbym, że wybór funkcji ma mniej wspólnego z nadmiernym dopasowaniem, a bardziej ze zwiększeniem mocy klasyfikacyjnej i wydajności obliczeniowej metody uczenia się. To, ile jest potrzebne, zależy w dużej mierze od danej metody.

por
źródło
3
(1) Nie zgadzam się z twoją pierwszą propozycją. Wybór funkcji nie zmniejsza ilości danych, ale zmniejsza liczbę funkcji. Liczba instancji (próbek) pozostaje taka sama i może to pomóc w nadmiernym dopasowaniu, ponieważ klasyfikator potrzebuje mniej parametrów (jeśli jest to model parametryczny), aby dopasować dane. Mniej parametrów oznacza mniejszą moc reprezentacji, więc mniej prawdopodobne jest przeregulowanie. (2) Jakiego rodzaju algorytmu wyboru funkcji używałeś przed KNN? Skąd wie, które funkcje będą bardziej skuteczne?
yasin.yazici
@ yasin.yazici: Powiedz, że robisz ręczną klasyfikację cyfr i wyrzucasz wszystkie oprócz lewego górnego piksela. Czy nie ograniczyłeś tylko ilości posiadanych danych?
cfh
@chf Nie, to tylko zmniejsza liczbę funkcji. Aby powiedzieć, że zestaw danych to MNIST, dla każdej próbki jest 784 funkcji i 60000 próbek. Jeśli wyrzucisz część swoich funkcji, nadal masz 60000 próbek.
yasin.yazici
@ yasin.yazici: Chodzi mi o to, że liczba próbek nie jest taka sama jak ilość danych. Dane to cała macierz „próbek x funkcji”.
por
Wybór funkcji może (i często będzie) pasował. Jeśli korzystasz z regularnych uczniów i nie zależy ci na znaczeniu funkcji, to chyba, że ​​masz dużo danych i solidny schemat sprawdzania poprawności, nie widzę większego sensu w wyborze funkcji.
Firebug
0

Myślę, że jeśli nie masz wystarczającej liczby punktów danych, aby solidnie zoptymalizować parametry, możesz dokonać wyboru funkcji, aby usunąć niektóre zmienne. Ale nie sugerowałbym, aby robić to za dużo, ponieważ możesz stracić sygnał, który chcesz modelować.

Ponadto mogą istnieć pewne funkcje, których nie chcesz w swoich modelach w oparciu o zrozumienie biznesowe, które możesz chcieć usunąć.

DeepakML
źródło
0

W przypadku lasso przetwarzanie danych w celu usunięcia uciążliwych funkcji jest w rzeczywistości dość powszechne. W ostatnim artykule omawiającym sposoby na to, zobacz Xiang et al's Screening Tests for Lasso Problems . Wspólną motywacją wspomnianą w artykułach, które widziałem, jest zmniejszenie obciążenia obliczeniowego związanego z obliczeniem rozwiązania.

użytkownik795305
źródło