Dynamiczne dopasowanie czasu dla nieregularnych szeregów czasowych


10

Ostatnio dużo czytałem o Dynamic Time Warping (DTW). Jestem bardzo zaskoczony, że w ogóle nie ma literatury na temat zastosowania DTW do nieregularnych szeregów czasowych, a przynajmniej nie mogłem jej znaleźć.

Czy ktoś mógłby podać mi odniesienie do czegoś związanego z tym problemem, a może nawet jego wdrożenie?


Odpowiedzi:


11

O ile rozumiem, przez nieregularne szeregi czasowe masz na myśli nierównomiernie rozmieszczone szeregi czasowe , zwane również szeregami nieregularnie próbkowanymi . Ponieważ ogólnie jestem ciekawy szeregów czasowych, przeprowadziłem krótkie badania na temat twojego (i teraz mojego) zainteresowania. Wyniki są następujące.

Pomimo dużej popularności podejścia do dynamicznego dopasowywania czasu (DTW) w analizie szeregów czasowych, grupowaniu i klasyfikacji, nieregularne szeregi czasowe stanowią pewne wyzwanie dla bezpośredniego zastosowania DTW do takiego typu danych (na przykład, patrz ten artykuł i ten artykuł ). Opierając się na moich stosunkowo krótkich wysiłkach badawczych, nie jest dla mnie całkowicie jasne, czy niemożliwe jest bezpośrednie zastosowanie DTW, ponieważ niektóre badania sugerują inaczej (zobacz także ten artykuł / rozdział ). Dla większej kompleksowości chciałbym również wspomnieć o doskonałym IMHO i odpowiednim do tematu pracy na temat nieregularnych szeregów czasowych .

Wydaje się jednak, że temat ten jest w większości objęty następującymi dwoma strumieniami badań :

  • proponowanie i ocena podejść alternatywnych do DTW , takich jak oparte na modelach (patrz ten artykuł i ten artykuł );
  • proponowanie i ocena zmodyfikowanych podejść DTW , takich jak cDTW , EDR , ERP , TWED , transformaty obwiedni , CDTW ( ciągły DTW - nie mylić z cDTW - ograniczony DTW !) i inne warianty (na przykład, patrz ten artykuł ). Przegląd wyżej wymienionych podejść i wyniki niektórych porównań empirycznych można znaleźć w tym artykule .

Na koniec chciałbym poruszyć temat oprogramowania open source , dostępnego do badań lub wdrażania systemu , skoncentrowanego na DTW i wspierającego niektóre z wyżej wymienionych algorytmów dla nieregularnych szeregów czasowych. Takie oprogramowanie obejmuje oparty na Python / NumPy projekt modułu cDTW, a także projekt CUDA-DTW oparty na GPU . Dla Rentuzjastów należy również wspomnieć o kompleksowym projekcie Dynamic Time Warp ( odpowiedni pakiet dtwjest dostępny w CRAN). Chociaż w tej chwili może nie obsługiwać wielu algorytmów DTW dla nieregularnych szeregów czasowych (choć myślę, że obsługuje cDTW), myślę, że to tylko kwestia czasu, zanim ten projekt zaoferuje bardziej kompleksową obsługę algorytmów DTW, skoncentrowanych na tego typu danych. Mam nadzieję, że podobało wam się czytanie mojej odpowiedzi tak samo, jak czerpanie przyjemności z badania tematu i pisania tego postu.


1

Z powodzeniem zaimplementowałem DTW w „C” w zastosowaniu do dynamicznej weryfikacji podpisów. Użyłem testowej bazy danych podpisów chińskich i holenderskich do weryfikacji EER i uzyskałem bardzo imponujące wyniki. Obecnie jest wdrażany jako wersja demo na iPadzie. Mój algorytm został ręcznie zakodowany na podstawie kilku opublikowanych opisów. Podzielę się kodem, jeśli istnieje sposób, aby go dostarczyć. Jedną z rzeczy, które również przyczyniły się do sukcesu, była „normalizacja” danych wejściowych. To znacznie ułatwiło porównywanie różnych danych przy różnych częstotliwościach próbkowania.


Witamy na naszej stronie! Pamiętaj, że Twoja nazwa użytkownika, identyfikator i link do strony użytkownika są automatycznie dodawane do każdego wpisu, więc nie musisz podpisywać swoich postów.
Silverfish,

2
Chcemy, aby nasze odpowiedzi były przydatne przyszłym czytelnikom, a nie tylko oryginalny plakat osobiście, więc możliwość udostępnienia kodu byłaby bardziej przydatna, gdybyś mógł gdzieś przesłać i udostępnić link tutaj. Ale jeśli nie jest to możliwe, być może mógłbyś rzucić nieco światła na „Mój algorytm został ręcznie zakodowany z kilku opublikowanych opisów” - czy możesz przytoczyć te, których użyłeś, gdyby ktoś inny chciał pójść w jego ślady i je wdrożyć?
Silverfish,

0

Dopiero wchodzę do DTW i osobiście nie korzystałem z pakietów, o których mowa poniżej, ale mam nadzieję, że poniższe informacje mogą ci pomóc.

Projekt Cran.R, w szczególności: • „ts” jest podstawową klasą dla regularnie rozmieszczonych szeregów czasowych z wykorzystaniem numerycznych znaczników czasu. • Pakiet „zoo” zapewnia infrastrukturę dla szeregów czasowych regularnie I NIEPRAWIDŁOWO z wykorzystaniem dowolnych klas znaczników czasu. Jest zaprojektowany tak, aby był jak najbardziej spójny z „ts”. • zoo: infrastruktura S3 dla szeregów czasowych regularnych i nieregularnych (obserwacje uporządkowane przez Z)

Odnośniki: http://cran.r-project.org/web/views/TimeSeries.html i http://cran.r-project.org/web/packages/zoo/index.html

Wszystkiego najlepszego.


1
Moje pytanie dotyczyło dostosowania DTW jako metody w kontekście nieregularnych szeregów czasowych. Pakiety takie jak Zoo nie zapewniają rozwiązania tego problemu.
Remi D

0

TSdist ma funkcję, która określa odległość przez dtw. Akceptuje nieregularne szeregi czasowe zoo


1
„Akceptuje” nie oznacza, że ​​je obsługuje. Zawsze powinieneś sprawdzać kod źródłowy funkcji.
Remi D
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.