Mam historyczne dane o sprzedaży z piekarni (codziennie, ponad 3 lata). Teraz chcę zbudować model do przewidywania przyszłej sprzedaży (przy użyciu funkcji takich jak dzień tygodnia, zmienne pogodowe itp.).
Jak podzielić zestaw danych w celu dopasowania i oceny modeli?
- Czy musi to być chronologiczny podział pociągu / zatwierdzenia / testu?
- Czy zrobiłbym wtedy dostrajanie hiperparametrów z zestawem pociągu i sprawdzania poprawności?
- Czy (zagnieżdżona) walidacja krzyżowa jest złą strategią dla problemu szeregów czasowych?
EDYTUJ
Oto kilka linków, które napotkałem po przejściu na adres URL sugerowany przez @ ene100:
- Rob Hyndman opisujący „pochodzenie prognozowania kroczącego” w teorii i praktyce (z kodem R)
- innymi terminami na początek prognozowania kroczącego są „optymalizacja” ( tutaj lub tutaj ), „kroczący horyzont” lub „ruchomy początek”
- Wydaje się, że techniki te nie zostaną zintegrowane ze scikit-learning w najbliższej przyszłości, ponieważ „zapotrzebowanie na te techniki i ich priorytetowość jest niejasna” (podana tutaj ).
I to jest kolejna propozycja dla szeregów czasowych krzyżowej walidacji.
Często podchodzę do problemów z perspektywy bayesowskiej. W takim przypadku rozważyłbym użycie przesadzenia jako strategii. Oznacza to ustawienie prawdopodobieństwa dla danych, ale pomiń niektóre z wyników. Traktuj te wartości jako brakujące i modeluj te brakujące wyniki za pomocą odpowiednich zmiennych towarzyszących. Następnie obróć, przez co dane są pomijane. Możesz to zrobić w ramach np. 10-krotnej procedury CV.
Wdrożony w programie próbkującym oznacza to, że na każdym etapie rysujesz wartość kandydacką pominiętej wartości danych (wraz z parametrami) i oceniasz jej prawdopodobieństwo na podstawie proponowanego modelu. Po osiągnięciu stacjonarności otrzymujesz kontrfaktyczne wartości dla danego modelu, których możesz użyć do oceny błędu prognozowania: próbki te odpowiadają na pytanie „jak wyglądałby mój model przy braku tych wartości?” Pamiętaj, że prognozy te odziedziczą również niepewność wynikającą z niepewności występującej w szacunkach współczynników, więc kiedy zbierzecie wszystkie swoje przewidywane wartości na, np. 1 marca 2010 r. Razem, otrzymacie rozkład prognoz na tę datę.
Fakt, że te wartości są próbkowane, oznacza, że nadal możesz używać terminów błędów, które zależą od dostępności pełnej serii danych (np. Średniej ruchomej), ponieważ na każdym etapie dostępna jest próbkowana wartość wyniku.
źródło
W twoim przypadku nie masz wielu opcji. Wygląda na to, że masz tylko jedną piekarnię. Tak więc, aby przeprowadzić test poza próbą, jedyną opcją jest oddzielenie czasu, tj. Próbka treningowa byłaby od początku do pewnego ostatniego momentu w czasie, a wstrzymanie trwałoby od tego momentu do dzisiaj.
źródło
Zastrzeżenie: Opisana tutaj metoda nie jest oparta na dokładnym odczytaniu literatury. Jest to moja najlepsza próba zaimprowizowania metody K-fold CV dla analizy zmiennych szeregów czasowych na wielu odmianach przy stosunkowo krótkich długościach okna wejściowego (zakładając brak / niską zależność w dłuższych okresach czasu), gdzie występował problem z niejednorodną obecnością źródeł danych okres zbierania danych.
Najpierw seria obserwacji jest przekształcana w szereg okien historii obserwacji o długości okno_długość, a krok 1 między oknami (bez kroku). Następnie zasadą jest podzielenie zestawu danych okna na „odłamki” wiele razy dłuższe niż okno_długość (ale znacznie więcej niż liczba instancji modelu) i rozdawanie odłamków (jak karty do gry) jako danych sprawdzania poprawności osobnym instancjom modelu. Aby modele były lepiej oddzielone, okno kwarantanny o długości okna na początku każdego odłamka jest wyłączone z wszelkiego szkolenia.
Modele są trenowane na wszystkich odłamkach oprócz ich własnych, a weryfikacja odbywa się na ich odłamkach. Sprawdzanie poprawności kolekcji / zestawu modeli odbywa się poprzez zsumowanie błędu sprawdzania poprawności dla wszystkich odłamków, przy czym każdy odłamek jest obsługiwany przez odpowiadający mu podmodel. Testowanie niewidocznych danych można wykonać przy użyciu średniej (lub innej odpowiedniej kombinacji) wyników wszystkich wyuczonych modeli.
Ta metoda ma na celu zmniejszenie zależności od systemu (i źródeł danych), które są takie same przez cały okres zbierania danych. Ma również na celu nadanie każdej szorstkiej części danych tego samego wpływu na model. Należy pamiętać, że aby nie dopuścić do szkód w oknach kwarantanny, długość fragmentu nie jest zbyt dobrze dopasowana do okresów, które (jak się oczekuje) pojawiają się w danych, takich jak (zazwyczaj) cykle dzienne, tygodniowe i roczne.
Model zespołu może być może źle obsługiwać zupełnie nowe dane. (Jeszcze nie wiem.)
źródło