Wyobraź sobie standardowy scenariusz uczenia maszynowego:
Masz do czynienia z dużym, wielowymiarowym zestawem danych i rozumiesz go dość niewyraźnie. To, co musisz zrobić, to przewidzieć jakąś zmienną na podstawie tego, co masz. Jak zwykle czyścisz dane, przeglądasz statystyki opisowe, uruchamiasz niektóre modele, weryfikujesz je krzyżowo itp., Ale po kilku próbach, w tę iz powrotem i próbując wielu modeli nic nie działa, a twoje wyniki są nieszczęśliwe. Na taki problem możesz spędzić godziny, dni lub tygodnie ...
Pytanie brzmi: kiedy przestać? Skąd wiesz, że twoje dane są naprawdę beznadziejne i że wszystkie fantazyjne modele nie przyniosłyby Ci nic lepszego niż przewidywanie średniego wyniku dla wszystkich przypadków lub jakiegoś innego trywialnego rozwiązania?
Oczywiście jest to kwestia przewidywalności, ale o ile mi wiadomo, trudno jest oszacować przewidywalność dla danych wielowymiarowych przed wypróbowaniem czegoś. A może się mylę?
Uwaga: to pytanie zostało zainspirowane tym, kiedy muszę przestać szukać modelu? nie przyciągało to zbyt wiele uwagi. Byłoby miło mieć szczegółową odpowiedź na takie pytanie w celach informacyjnych.
Odpowiedzi:
Prognozowalność
Masz rację, że jest to kwestia przewidywalności. Odnotowano kilka artykułów na forecastability w IIF za praktykującego zorientowanych czasopisma Foresight . (Pełne ujawnienie: jestem redaktorem).
Problem polega na tym, że przewidywalność jest już trudna do oszacowania w „prostych” przypadkach.
Kilka przykładów
Załóżmy, że masz taką serię czasową, ale nie mówisz po niemiecku:
Jak modelowałbyś duży szczyt w kwietniu i jak uwzględniłbyś te informacje w jakichkolwiek prognozach?
Jeśli nie wiesz, że ta seria czasowa to sprzedaż jaj w szwajcarskiej sieci supermarketów, która osiąga szczyt tuż przed Wielkanocą w kalendarzu zachodnim , nie miałbyś szans. Dodatkowo, gdy Wielkanoc przesuwa się po kalendarzu nawet o sześć tygodni, wszelkie prognozy, które nie zawierają konkretnej daty Wielkanocy (zakładając, powiedzmy, że był to tylko jakiś szczyt sezonu, który powróci w określonym tygodniu w przyszłym roku) prawdopodobnie byłby bardzo zły.
Podobnie, załóżmy, że masz niebieską linię poniżej i chcesz modelować wszystko, co wydarzyło się 28.02.2010, tak inaczej niż „normalne” wzory 27.02.2010:
Ponownie, nie wiedząc, co się stanie, gdy całe miasto pełne Kanadyjczyków obejrzy w telewizji mecz finałów olimpijskich w hokeju na lodzie, nie masz szansy zrozumieć, co się tutaj wydarzyło, i nie będziesz w stanie przewidzieć, kiedy coś takiego się powtórzy.
Na koniec spójrz na to:
Jest to szereg czasowy codziennej sprzedaży w sklepie kasowym . (Po prawej stronie masz prosty stół: 282 dni miało zerową sprzedaż, 42 dni przyniosło sprzedaż 1 ... a pewnego dnia sprzedaż 500.) Nie wiem, co to jest.
Do dziś nie wiem, co wydarzyło się tego dnia ze sprzedażą na poziomie 500. Domyślam się, że jakiś klient zamówił wcześniej dużą ilość dowolnego produktu i go odebrał. Teraz, nie wiedząc o tym, każda prognoza na ten konkretny dzień będzie daleka. Odwrotnie, załóżmy, że stało się to tuż przed Wielkanocą, a my mamy głupi, inteligentny algorytm, który uważa, że może to być efekt wielkanocny (może to są jajka?) I na szczęście prognozuje 500 jednostek na następną Wielkanoc. O mój, czy to może pójść nie tak?
Podsumowanie
We wszystkich przypadkach widzimy, w jaki sposób przewidywalność można dobrze zrozumieć tylko wtedy, gdy mamy wystarczająco głębokie zrozumienie prawdopodobnych czynników, które wpływają na nasze dane. Problem polega na tym, że jeśli nie znamy tych czynników, nie wiemy, że możemy ich nie znać. Według Donalda Rumsfelda :
Jeśli Wielkanoc lub Kanadyjczycy nie znają się na hokeju, nie są nam nieznane, utknęliśmy - i nie mamy nawet drogi naprzód, ponieważ nie wiemy, jakie pytania musimy zadać.
Jedynym sposobem na poradzenie sobie z nimi jest zebranie wiedzy o domenach.
Wnioski
Wyciągam z tego trzy wnioski:
Dolna linia
Oto jak poleciłbym budowanie modeli - i zauważenie, kiedy przestać:
Zauważ, że nie zalecam wypróbowania różnych klas modeli, jeśli twój oryginalny model ma płaskowyże. Zazwyczaj, jeśli zacząłeś od rozsądnego modelu, użycie czegoś bardziej wyrafinowanego nie przyniesie znaczących korzyści i może po prostu być „nadmiernym dopasowaniem do zestawu testowego”. Często to widziałem i inni się z tym zgadzają .
źródło
If you are forecasting a fair coin toss, then there is no way to get above 50% accuracy.
. Powiedziałeś wszystko tam.Odpowiedź Stephana Kolassy jest doskonała, ale chciałbym dodać, że często występuje również ekonomiczny warunek zatrzymania:
Jako przykład: mieliśmy klienta, który chciał przewidzieć, kiedy jego maszyny się zepsują, przeanalizowaliśmy istniejące dane i stwierdziliśmy zasadniczo hałas. Wkopaliśmy się w ten proces i stwierdziliśmy, że najbardziej krytyczne dane nie zostały zarejestrowane i bardzo trudno je zebrać. Ale bez tych danych nasz model był tak słaby, że nikt by go nie użył i byłby konserwowany.
Podczas gdy koncentrowałem się na ekonomii podczas pracy nad produktem komercyjnym, ta zasada dotyczy również środowisk akademickich lub projektów rozrywkowych - podczas gdy w takich okolicznościach pieniądze są mniej ważne, czas jest nadal rzadkim towarem. Np. w środowisku akademickim powinieneś przestać pracować, gdy nie osiągniesz wymiernych rezultatów, a masz inne, bardziej obiecujące projekty, które możesz wykonać. Ale nie upuszczaj tego projektu - opublikuj również null lub wyniki „potrzebujesz więcej / innych danych”, one też są ważne!
źródło
Jest inny sposób. Zapytaj siebie -
Na przykład, jeśli miałeś dużą liczbę zmiennych powiązanych z różnymi drużynami piłkarskimi i próbowałeś przewidzieć, kto wygra, możesz spojrzeć na kursy bukmachera lub jakąś formę prognozy pozyskiwanej przez tłum, aby porównać z wynikami uczenia maszynowego algorytm. Jeśli jesteś lepszy, możesz być na granicy, a jeśli gorzej, to oczywiście jest miejsce na poprawę.
Twoja zdolność do poprawy zależy (zasadniczo) od dwóch rzeczy:
Zależy to dokładnie od tego, co próbuję zrobić, ale zwykle używam odpowiedzi na te pytania, aby wytyczyć kierunek, w którym podążam, budując model, szczególnie czy próbuję wydobyć więcej danych, które mogę wykorzystać, czy też skoncentrować się na próba udoskonalenia modelu.
Zgadzam się ze Stephanem, że zwykle najlepszym sposobem na to jest zwrócenie się do eksperta w danej dziedzinie.
źródło