Strategie rozszerzania danych dla prognozowania szeregów czasowych


13

Rozważam dwie strategie „powiększania danych” w prognozowaniu szeregów czasowych.

Najpierw trochę tła. Predyktor do prognozowania następnego kroku szeregu jest funkcją, która zazwyczaj zależy od dwóch rzeczy, przeszłych stanów szeregu czasowego, ale także przeszłych stanów predyktora:P{Ai}

P({Ait1},PSt1)

Jeśli chcemy dostosować / wyszkolić nasz system w celu uzyskania dobrego P , będziemy potrzebować wystarczającej ilości danych. Czasami dostępne dane nie wystarczą, dlatego rozważamy przeprowadzenie rozszerzenia danych.

Pierwsze podejście

Załóżmy, że mamy szeregi {Ai} , z 1in . Załóżmy także, że mamy ϵ który spełnia następujący warunek: 0<ϵ<|Ai+1Ai|i{1,,n} .

Możemy skonstruować nowy szereg czasowy {Bi=Ai+ri} , gdzie ri jest realizacją rozkładu N(0,ϵ2) .

Następnie, zamiast minimalizować funkcję utraty tylko na {Ai} , robimy to również na {Bi} . Tak więc, jeśli proces optymalizacji zajmie m kroków, musimy „zainicjować” predyktor 2m razy razy i obliczyć około 2m(n1) stanów wewnętrznych predyktora.

Drugie podejście

Obliczamy {Bi} jak poprzednio, ale nie aktualizujemy stanu wewnętrznego predyktora za pomocą {Bi} , ale {Ai} . Używamy tylko dwóch serii razem podczas obliczania funkcji straty, więc obliczymy w przybliżeniu m(n1) wewnętrznych stanów predyktora.

Oczywiście jest tu mniej pracy obliczeniowej (choć algorytm jest nieco brzydszy), ale na razie nie ma to znaczenia.

Wątpliwość

Problemem jest: z statystycznego punktu widzenia, która opcja jest „najlepsza”? I dlaczego?

Moja intuicja mówi mi, że pierwsza jest lepsza, ponieważ pomaga „regularyzować” wagi związane ze stanem wewnętrznym, podczas gdy druga pomaga tylko regularyzować wagi związane z przeszłością szeregów czasowych.


Dodatkowy:

  • Jakieś inne pomysły na zwiększenie danych do prognozowania szeregów czasowych?
  • Jak zważyć dane syntetyczne w zestawie treningowym?

Odpowiedzi:


6

Jakieś inne pomysły na zwiększenie danych do prognozowania szeregów czasowych?

Obecnie myślę o tym samym problemie. Znalazłem artykuł „Augmentacja danych dla klasyfikacji szeregów czasowych za pomocą sieci neuronowych splotowych autorstwa Le Guennec i in. co nie obejmuje jednak prognozowania. Mimo to wspomniane tam metody augmentacji wyglądają obiecująco. Autorzy komunikują 2 metody:

Wycinanie okien (WS)

Pierwsza metoda inspirowana środowiskiem komputerowym [8,10] polega na wydobywaniu wycinków z szeregów czasowych i przeprowadzaniu klasyfikacji na poziomie wycinków. Metodę tę wprowadzono dla szeregów czasowych w [6]. Podczas treningu do każdego wycinka wyodrębnionego z szeregu czasowego klasy y przypisana jest ta sama klasa, a przy użyciu wycinków uczy się klasyfikatora. Rozmiar wycinka jest parametrem tej metody. W czasie testu każdy wycinek z testowego szeregu czasowego jest klasyfikowany przy użyciu wyuczonego klasyfikatora i przeprowadza się głosowanie większościowe w celu podjęcia decyzji o przewidywanej etykiecie. Ta metoda jest dalej nazywana krojeniem okien (WS).

Wypaczanie okien (WW)

Ostatnia stosowana przez nas technika powiększania danych jest bardziej specyficzna dla szeregów czasowych. Polega ona na wypaczeniu losowo wybranego wycinka szeregu czasowego poprzez przyspieszenie go w górę lub w dół, jak pokazano na ryc. 2. Rozmiar oryginalnego wycinka jest parametrem tej metody. Ryc. 2 pokazuje szeregi czasowe z zestawu danych „ECG200” i odpowiadających im przetworzonych danych. Zauważ, że ta metoda generuje szereg czasowy wejściowy o różnych długościach. Aby poradzić sobie z tym problemem, wykonujemy wycinanie okien na przekształconych szeregach czasowych, aby wszystkie miały jednakową długość. W tym artykule rozważamy tylko współczynniki wypaczenia równe 0.5lub 2, ale można zastosować inne współczynniki, a optymalny współczynnik można nawet dostroić poprzez weryfikację krzyżową na zestawie treningowym. Poniżej ta metoda będzie nazywana wypaczaniem okna (WW).

Ryc. 2 z papieru

Autorzy zachowali 90% serii bez zmian (tj. WS ustawiono na 90% plasterek, a dla WW 10% serii zostało wypaczone). Podano, że metody zmniejszają błąd klasyfikacji w kilku typach danych szeregów (czasowych), z wyjątkiem reprezentacji 1D konturów obrazu. Autorzy wzięli swoje dane stąd: http://timeseriesclassification.com

Jak zważyć dane syntetyczne w zestawie treningowym?

W przypadku powiększania obrazu, ponieważ nie oczekuje się, że powiększenie zmieni klasę obrazu, powszechne jest ważenie go jako rzeczywistych danych. Prognozowanie szeregów czasowych (a nawet klasyfikacja szeregów czasowych) może być inna:

  1. Szereg czasowy nie jest łatwo postrzegalny jako ciągły obiekt dla ludzi, więc czy w zależności od tego, jak bardzo go manipulujesz, czy nadal jest to ta sama klasa? Jeśli tylko trochę pokroisz i zniekształcisz, a klasy są wizualnie różne, może to nie stanowić problemu dla zadań klasyfikacyjnych
  2. Do prognozowania argumentowałbym, że

    2.1 WS to wciąż niezła metoda. Bez względu na to, w którym 90% części serii spojrzysz, nadal oczekujesz prognozy opartej na tych samych zasadach => pełna waga.

    2.2 WW: Im bliżej końca serii, tym bardziej jestem ostrożny. Intuicyjnie wymyśliłbym współczynnik wagi przesuwający się między 0 (wypaczenie na końcu) i 1 (wypaczenie na początku), zakładając, że najbardziej aktualne są najnowsze cechy krzywej.


6

Jakieś inne pomysły na zwiększenie danych do prognozowania szeregów czasowych?

Kolejna odpowiedź z innym podejściem, oparta na „Rozszerzeniu zestawu danych w przestrzeni funkcji” autorstwa DeVriesa i Taylora.

W tej pracy wykazujemy, że ekstrapolację między próbkami w przestrzeni funkcji można wykorzystać do rozszerzenia zestawów danych i poprawy wydajności algorytmów uczenia nadzorowanego. Główną zaletą naszego podejścia jest to, że jest niezależny od domeny , nie wymaga specjalistycznej wiedzy i dlatego może być stosowany do wielu różnych rodzajów problemów.

Brzmi obiecująco. Zasadniczo możesz wziąć dowolny autoencoder, aby utworzyć reprezentacje w przestrzeni funkcji. Funkcje te można interpolować lub ekstrapolować.

Poniższy rysunek pokazuje jako przykładową interpolację dwóch wektorów przestrzeni cech i (pamiętaj, że więcej pozytywnych wyników jest zgłaszanych przy ekstrapolacji z dwóch wektorów, więcej szczegółów w pracy). Powstały wektor wzmocniony jest następnie dekodowany z powrotem do przestrzeni wejściowej i wprowadzany do sieci w celu szkolenia.C k C CjCkC

Artykuł ponownie obejmuje tylko klasyfikację sekwencji. Ale znowu IMO zasady są takie same dla analizy regresji. Otrzymujesz nowe dane z przypuszczalnie tej samej dystrybucji, co Twoje prawdziwe dane, właśnie tego chcesz.

architektura rozszerzenia AE

Jeśli rozwiniemy tę zasadę generowania danych przez sieć neuronową, skończymy z Generative Adversarial Networks (GAN) . Można je wykorzystać w podobny sposób do generowania rozszerzonych danych, co prawdopodobnie będzie najbardziej zaawansowanym, najnowocześniejszym sposobem.


4

Niedawno wdrożyłem inne podejście inspirowane tym opracowaniem Bergmeir, Hyndman i Benitez.

Chodzi o to, aby wziąć szereg czasowy i najpierw zastosować transformację, taką jak transformacja Boxa Coxa lub Yeo-Johnsona (która rozwiązuje niektóre problemy z Boxem Coxem), aby ustabilizować wariancję szeregu, a następnie zastosować dekompozycję STL na szeregach transformowanych dla serii sezonowych lub rozkładu lessowego w celu uzyskania resztek serii. Biorąc te resztki i ładując je za pomocą paska ładującego z ruchomym blokiem, aby wygenerować dodatkowych serii. Te dodatkowe serie mają następnie początkowy trend i sezonowość początkowej serii dodaną z powrotem do resztek początkowych, zanim ostatecznie odwróciły transformację mocy zastosowaną w pierwszym etapie.BB

W ten sposób można wygenerować tyle dodatkowych szeregów czasowych, ile potrzeba, które dość dobrze reprezentują początkowe szeregi czasowe. Oto przykład zastosowania niektórych rzeczywistych danych do generowania dodatkowych podobnych szeregów czasowych:

Rozszerzona seria

Tutaj pokazano powiększenie za pomocą transformacji Yeo-Johnsona, a nie Box Coxa, jak sugerowano w oryginalnym artykule.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.