Rozważam problem klasyfikacji (wieloklasowej) na podstawie szeregów czasowych o zmiennej długości , to znaczy znaleźć funkcję poprzez globalną reprezentację serii czasowej przez zestaw wybranych cech o stałym rozmiarze niezależnym od , a następnie użyj standardowych metod klasyfikacji w tym zestawie funkcji. Ja nie interesuje się prognozowania, czyli przewidywanief ( X T ) = y ∈ [ 1 .. K ]v i D T ϕ ( X T ) = v 1 , … , v D ∈ R , x T + 1
Jakie standardowe funkcje mogę wziąć pod uwagę? Na przykład możemy oczywiście użyć średniej i wariancji szeregu (lub momentów wyższego rzędu), a także spojrzeć na dziedzinę częstotliwości, jak energia zawarta w pewnym przedziale dyskretnej transformaty Fouriera serii (lub dyskretnej transformaty falkowej ).
Emile, myślę, że funkcje wymienione w twojej odpowiedzi są całkiem dobrym punktem wyjścia, choć jak zawsze uważam, że wiedza specjalistyczna w dziedzinie (lub przynajmniej dobra długa myśl) na temat twojego problemu jest równie ważna.
Możesz rozważyć włączenie funkcji obliczonych na podstawie pochodnych (lub całek) twojego sygnału. Na przykład postawiłbym zakład, że szybkie przyspieszanie / zwalnianie jest względnie dobrym predyktorem podatnej na wypadki jazdy. Ta informacja jest oczywiście nadal obecna w sygnale pozycji, ale nie jest tak wyraźna.
Możesz także rozważyć zastąpienie współczynników Fouriera reprezentacją falkową lub pakietem falkowym. Główną zaletą falek jest to, że pozwalają one zlokalizować cechę zarówno pod względem częstotliwości, jak i czasu, podczas gdy tradycyjne współczynniki Fouriera są ograniczone tylko do czasu. Może to być szczególnie przydatne, jeśli dane zawierają składniki, które nieregularnie włączają się / wyłączają lub mają impulsy prostokątne, które mogą być problematyczne dla metod Fouriera.
źródło
Jak sugerują inne odpowiedzi, istnieje ogromna liczba charakterystyk szeregów czasowych, które można wykorzystać jako potencjalne cechy. Istnieją proste cechy, takie jak średnia, cechy związane z szeregami czasowymi, takie jak współczynniki modelu AR lub wysoce wyrafinowane cechy, takie jak statystyka testowa rozszerzonego testu hipotezy Dickeya.
Kompleksowy przegląd możliwych funkcji szeregów czasowych
Pakiet python tsfresh automatyzuje ekstrakcję tych funkcji. Jego dokumentacja opisuje różne obliczone cechy. Możesz znaleźć stronę z obliczonymi funkcjami tutaj .
Oświadczenie: Jestem jednym z autorów tsfresh.
źródło
Sugeruję, aby zamiast klasycznych metod wyodrębniania ręcznie opracowanych funkcji, korzystać z autoencoderów . Autoencodery odgrywają ważną rolę w ekstrakcji funkcji architektury głębokiego uczenia.
Autoencoder próbuje nauczyć się funkcji . Innymi słowy, próbuje nauczyć się przybliżenia funkcji tożsamości, aby uzyskać który jest podobny do .X t X Tf(XT)≈XT X^T XT
Funkcja tożsamości wydaje się szczególnie trywialną funkcją, której próbuje się nauczyć; ale nakładając ograniczenia na sieć, na przykład ograniczając liczbę ukrytych jednostek, możemy odkryć interesującą strukturę danych.
W ten sposób żądany będzie równoznaczne z wartościami wyjściowymi warstwy najbardziej środkowe w głębokim autoencoder, Jeśli ograniczyć liczbę ukrytych jednostek w najbardziej środkowe do .Dϕ(XT)=v1,…,vD∈R D
Dodatkowo możesz użyć wielu odmian autoencodera, aby znaleźć najlepsze rozwiązanie swojego problemu.
źródło
Powiązany artykuł będzie nieco pouczający, ponieważ interesuje go mniej więcej ten sam problem w innym kontekście.
Streszczenie papierowe (w archiwum internetowym)
Papierowy PDF
źródło
W zależności od długości szeregów czasowych zwykle stosuje się epokę danych na segmenty, np. 10 sekund.
Jednak często przed podzieleniem szeregów czasowych na segmenty konieczne jest wykonanie wstępnego przetwarzania, takiego jak filtrowanie i odrzucanie artefaktów. Następnie możesz obliczyć różne cechy, takie jak te oparte na częstotliwości (tj. Wziąć FFT dla każdej epoki), czasie (np. Średnia, wariancja itp. Szeregów czasowych w tej epoce) lub morfologii (tj. Kształcie sygnału / szeregi czasowe w każdej epoce).
Zazwyczaj funkcje używane do klasyfikowania segmentów (epok) szeregu czasowego / sygnału są specyficzne dla domeny, ale analiza Wavelet / Fouriera to po prostu narzędzia pozwalające badać sygnał w domenach częstotliwość / czas-częstotliwość, a nie same w sobie.
W przypadku problemu z klasyfikacją każda epoka będzie miała etykietę klasową, np. „Szczęśliwa” lub „smutna”, a następnie wyszkolisz klasyfikatora, aby rozróżniał epokę „szczęśliwą” i „smutną” za pomocą 6 cech obliczonych dla każdej epoki.
W przypadku, gdy każda seria czasowa reprezentuje pojedynczy przypadek do klasyfikacji, należy obliczyć każdą cechę we wszystkich próbkach serii czasowej. FFT jest tu istotne tylko wtedy, gdy sygnał jest liniowy niezmienny w czasie (LTI), tj. Jeśli sygnał można uznać za stacjonarny w całym szeregu czasowym, jeśli sygnał nie jest stacjonarny w danym okresie, analiza falkowa może być bardziej odpowiedni. Podejście to oznacza, że za każdym razem szereg czasowy wytworzy jeden wektor cech i będzie stanowić jeden przypadek klasyfikacji.
źródło