Który pierwszy: testowanie algorytmów, wybór funkcji, dostrajanie parametrów?

11

Kiedy próbuję dokonać np. Klasyfikacji, obecnie moim podejściem jest

  1. najpierw wypróbuj różne algorytmy i sprawdź je
  2. dokonaj wyboru funkcji na najlepszym algorytmie z 1 powyżej
  3. dostrój parametry za pomocą wybranych funkcji i algorytmu

Jednak często nie mogę się przekonać, że może istnieć lepszy algorytm niż wybrany, jeśli inne algorytmy zostały zoptymalizowane pod kątem najlepszego parametru / najbardziej odpowiednich funkcji. Jednocześnie wyszukiwanie wszystkich algorytmów * parametrów * funkcji jest po prostu zbyt czasochłonne.

Wszelkie sugestie dotyczące właściwego podejścia / sekwencji?

Ricky
źródło

Odpowiedzi:

8

Zakładam, że masz na myśli wybór funkcji jako inżynierii funkcji . Proces, który zwykle śledzę i widzę, że niektórzy to robią

  1. Inżynieria funkcji
  2. Wypróbuj kilka algorytmów, zwykle wysoce wydajnych, takich jak RandomForest, Gradient Boosted Trees, Neutral Networks lub SVM.

    2.1 Wykonaj proste dostrajanie parametrów, takie jak wyszukiwanie siatki na małym zakresie parametrów

Jeśli wynik kroku 2 nie jest zadowalający, wróć do kroku 1, aby wygenerować więcej funkcji lub usuń zbędne funkcje i zachowaj najlepsze, ludzie zwykle nazywają ten wybór funkcji . Jeśli brakuje Ci pomysłów na nowe funkcje, wypróbuj więcej algorytmów.

Jeśli wynik jest w porządku lub zbliżony do tego, co chcesz, przejdź do kroku 3

  1. Rozbudowane dostrajanie parametrów

Powodem tego jest to, że klasyfikacja polega na inżynierii funkcji i chyba, że ​​znasz jakiś niesamowity potężny klasyfikator, taki jak głębokie uczenie się, dostosowane do konkretnego problemu, takiego jak Computer Vision. Kluczem jest generowanie dobrych funkcji. Wybór klasyfikatora jest ważny, ale nie kluczowy. Wszystkie wyżej wymienione klasyfikatory są dość porównywalne pod względem wydajności i przez większość czasu najlepszy klasyfikator okazuje się jednym z nich.

Strojenie parametrów może w niektórych przypadkach znacznie poprawić wydajność. Ale bez dobrych funkcji tuning niewiele pomaga. Pamiętaj, że zawsze masz czas na dostrajanie parametrów. Poza tym nie ma sensu dostrajać parametrów tak szeroko, że odkryjesz nową funkcję i przerobisz wszystko.

Tu N.
źródło
2

Hej, właśnie widziałem twoje pytanie. ZUPEŁNIE NIEPRAWIDŁOWE jest dokonanie wyboru funkcji, a następnie dostrojenie modelu za pomocą weryfikacji krzyżowej. W elementach statystycznego uczenia się oraz w tym poście na blogu wyraźnie wspomniano, że: metoda CV jest bezstronna tylko wtedy, gdy całe budowanie modelu odbywa się w pętli CV. Więc dokonaj wyboru funkcji w pętli CV do strojenia parametrów. Można to łatwo zrobić za pomocą owijki filtra w pakiecie MLR w R.

Dhruv Mahajan
źródło
1

Odpowiedziałem już na podobne pytanie tutaj . Proces byłby następujący:

  • Transformacja i redukcja: Obejmuje procesy takie jak transformacje, skalowanie średniej i mediany itp.
  • Wybór funkcji: Można to zrobić na wiele sposobów, takich jak wybór progu, wybór podzbioru itp.
  • Projektowanie modelu predykcyjnego: Zaprojektuj model predykcyjny na podstawie danych treningowych w zależności od dostępnych funkcji.
  • Weryfikacja krzyżowa i dostrajanie parametrów:
  • Ostateczna prognoza, walidacja

Zawsze staraj się wykonać inżynieria funkcji przed wyborem modelu. Następnie wybierz model zgodnie z najlepszymi cechami (lub cechami, które lepiej wpływają na problem / zmienną zależną).

Dawny33
źródło
0

Jeśli jesteś gotowy poświęcić czas na naukę, jak działa nowe narzędzie, możesz wypróbować automatyczne wyuczenie. Robi wszystko, co potrzebne, aby zbudować dla Ciebie rurociąg ML. Funkcje wstępnego przetwarzania, wyboru, budowania zespołu modeli i strojenia poprzez krzyżową weryfikację. W zależności od ilości posiadanych danych może to być szybszy sposób na dobrą prognozę. Ale z pewnością jest obiecujący.

Diego
źródło