Wyrażenia zespolone

Nov 19 2020

Mam dwa modele, $m_1$ i $m_2$i chcę połączyć je w ostateczny model. Chcę mieć możliwość ważenia jednego lub drugiego bardziej zgodnie z wyszukiwaniem siatki. Kiedy to robię, przychodzą mi do głowy dwa główne pomysły:

  • Zdefiniuj rodzinę modeli $m_1 \cdot a + m_2 \cdot (1 - a)$, gdzie $0 < a < 1$, znaleźć $a$ to daje najlepszy wynik.
  • Zdefiniuj rodzinę modeli $m_1^a \cdot m_2^{1 - a}$, gdzie $0 < a < 1$, znaleźć $a$ to daje najlepszy wynik.

Jednak w niektórych przypadkach widziałem topowe modelki na zawodach Kaggle, które robiły całkiem inne rzeczy, na przykład mając ostateczny model formy$m_1^a + m_2^b$.

Moje pytanie brzmi: jakie są zalety i wady każdego rozwiązania? Kiedy pracują lepiej, a kiedy gorzej? Kiedy jest odpowiedni trzeci rodzaj zespołu i czy jest jakaś heurystyka do dostrojenia$a$ i $b$?

Odpowiedzi

1 BrianSpiering Nov 21 2020 at 23:03

To jest pytanie empiryczne. Odpowiedź zmieni się dla różnych modeli i różnych zestawów danych.

Najlepszym podejściem byłoby użycie walidacji krzyżowej, aby zobaczyć, która technika tworzenia zespołów ma najlepszy wynik w mierniku oceny dla danych danych.

1 CarlosMougan Nov 23 2020 at 21:22

Możesz zadać to samo pytanie z każdym algorytmem uczenia maszynowego, a odpowiedź nadal pozostanie bardzo podobna.

Jaka jest przewaga regresji liniowej nad drzewami decyzyjnymi? Aby odpowiedzieć na to pytanie, możesz zdefiniować je matematycznie. W twoim przypadku definicja matematyczna wydaje się łatwa: średnia ważona lub średnia geometryczna.

Kiedy jakikolwiek model działa lepiej z innym modelem? Spróbuj w weryfikacji krzyżowej.

Niestety, naukowa metodologia uczenia maszynowego opiera się na próbach i błędach. Mówienie, jaka będzie wartość hiperparametru przed dopasowaniem modelu, jest niewiarygodne.

„Udowadniasz”, że algorytm działa w ML, gdy przepuszczasz go przez zestaw zestawów danych i działa on lepiej niż pozostałe.

Wracając do twojego pytania, to, co dzieje się w kaggle, jest najbardziej zaawansowaną technicznie rzeczą. Więc jeśli tam jest, warto spróbować.

DaL Nov 23 2020 at 13:15

Zgadzam się z Brain. Rozwiązanie, które będzie działać lepiej, to takie, które będzie lepiej pasowało do Twoich danych.

Należy pamiętać, że jeśli masz tylko jeden parametr, możesz uzyskać optymalną wartość zamiast przeszukiwania siatki. Twoja rodzina rozwiązań jest ograniczona, więc nie oczekuję znacznego zysku, ale nie ma powodu, aby z niego nie korzystać.