Dzielenie danych szeregów czasowych na zestawy pociągu / testu / walidacji

12

Jaki jest najlepszy sposób na podzielenie danych szeregów czasowych na zestawy pociągu / testu / walidacji, gdzie zestaw walidacji byłby wykorzystywany do strojenia hiperparametrów?

Mamy 3-letnie dzienne dane dotyczące sprzedaży, a naszym planem jest wykorzystanie danych szkoleniowych 2015-2016, a następnie losowe próbkowanie 10 tygodni z danych z 2017 r., Które zostaną wykorzystane jako zestaw walidacyjny, oraz kolejne 10 tygodni od danych z 2017 r. Dla zestaw testowy. Następnie wykonamy krok naprzód każdego dnia w zestawie testowym i walidacyjnym.

meraksy
źródło

Odpowiedzi:

8

Należy użyć podziału opartego na czasie, aby uniknąć uprzedzeń dotyczących przyszłości. Pociąg / walidacja / test w tej kolejności według czasu.

Zestaw testowy powinien być najnowszą częścią danych. Musisz zasymulować sytuację w środowisku produkcyjnym, w którym po przeszkoleniu modelu oceniasz dane przychodzące po czasie tworzenia modelu. Losowe pobieranie próbek używane do sprawdzania poprawności i szkolenia nie jest zatem dobrym pomysłem.

wiatr
źródło
5

Myślę, że najbardziej kompletnym sposobem na wykorzystanie danych szeregów czasowych do szkolenia / walidacji / testowania / prognozowania jest:

wprowadź opis zdjęcia tutaj

Czy obraz jest oczywisty? Jeśli nie, proszę o komentarz, a dodam więcej tekstu ...

elemolotiv
źródło
3

Zamiast tworzyć tylko jeden zestaw zestawów szkoleniowych / walidacyjnych, możesz utworzyć więcej takich zestawów.

Pierwszym zestawem szkoleniowym mogą być, powiedzmy, dane z 6 miesięcy (pierwszy semestr 2015 r.), A zestawem sprawdzającym będą następne trzy miesiące (lipiec-sierpień 2015 r.). Drugi zestaw treningowy byłby kombinacją pierwszego zestawu treningowego i walidacyjnego. Zestaw walidacyjny to kolejne trzy miesiące (wrzesień-październik 2015). I tak dalej.

Jest to odmiana walidacji krzyżowej K-Fold, w której zestawy treningowe są kombinacją poprzedniego zestawu treningowego i walidacyjnego.

aathiraks
źródło