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?
Odpowiedzi:
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.
źródło
Nadal istnieją jednak powody, aby całkowicie usunąć zmienną.
źródło
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.
źródło
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ąć.
źródło
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.
źródło