Динамічний викривлення часу для нерегулярних часових рядів


10

Останнім часом я багато читав про динамічне викривлення часу (DTW). Я дуже здивований, що взагалі немає літератури про застосування ДТВ до нерегулярних часових рядів, або, принаймні, я не міг її знайти.

Чи може хто-небудь дати мені посилання на щось, що стосується цього питання, чи, можливо, навіть його реалізацію?


Відповіді:


11

Наскільки я розумію, під нерегулярними часовими рядами ви маєте на увазі нерівномірно розташовані часові ряди , які також називаються часовими рядами з нерегулярною вибіркою . Оскільки мені цікаво загалом часові ряди, я провів коротке дослідження на тему вашого (і зараз мого) інтересу. Результати випливають.

Незважаючи на високу популярність підходу динамічного викривлення часу (DTW) в аналізі, кластеризації та класифікації часових рядів, нерегулярні часові ряди представляють певні проблеми перед прямим застосуванням DTW до такого типу даних (наприклад, див. Цю статтю та цей документ ). Виходячи з моїх порівняно коротких науково-дослідних зусиль, мені не зовсім зрозуміло, чи неможливо застосовувати DTW безпосередньо, як деякі дослідження говорять про інше (див. Також цей документ / розділ ). Для більшої вичерпності я також хотів би зазначити ІМХО відмінне та відповідне до дисертації з теми про нерегулярні часові ряди .

Тим не менш, видається, що ця тема в основному висвітлена у двох наступних напрямках дослідження :

  • пропонування та оцінювання підходів, альтернативних DTW , таких як модельні (див. цей документ і цей документ );
  • пропонування та оцінка модифікованих підходів DTW , таких як cDTW , EDR , ERP , TWED , перетворення конвертів , CDTW ( безперервний DTW - не плутайте з cDTW - обмежений DTW !) та інші варіанти (наприклад, див. цей документ ). Огляд вищезазначених підходів та результатів деяких емпіричних порівнянь можна знайти у цій роботі .

Нарешті, я хотів би торкнутися теми програмного забезпечення з відкритим кодом , доступного для досліджень або впровадження системи , орієнтованого на DTW та підтримки деяких згаданих вище алгоритмів для нерегулярних часових рядів. Таке програмне забезпечення включає проект cDTW на базі Python / NumPy , а також проект CUDA-DTW, орієнтований на GPU . Для ентузіастів слід також згадати комплексний проект Dynamic Time Warp ( відповідний пакет R dtwдоступний на CRAN). Незважаючи на те, що він може не підтримувати багато алгоритмів DTW для нерегулярних часових рядів (хоча я думаю, що він підтримує cDTW), я думаю, що лише питання часу, поки цей проект запропонує більш всебічну підтримку алгоритмів DTW, орієнтованих на такий тип даних. Я сподіваюся, що вам сподобалося читати мою відповідь стільки, скільки мені подобалося досліджувати тему та писати цю публікацію.


1

Я успішно реалізував DTW у "C", застосований до динамічної перевірки підпису. Я використовував базу даних тестів для китайських та голландських підписів для перевірки ЗНО та отримав дуже вражаючі результати. В даний час він реалізований як демонстрація на iPad. Мій алгоритм був кодований вручну з кількох опублікованих описів. Я поділюсь кодом, якщо є спосіб отримати його до вас. Одне, що також сприяло успіху, - «нормалізація» вхідних даних. Це значно полегшило порівняння різних даних, використовуючи різні показники вибірки.


Ласкаво просимо на наш сайт! Зауважте, що ваше ім'я користувача, ідентифікатор та посилання на вашу сторінку користувача автоматично додаються до кожної публікації, яку ви створюєте, тому немає необхідності підписувати свої повідомлення.
Срібляста рибка

2
Ми любимо, щоб наші відповіді були корисні майбутнім читачам, а не просто оригінальним афішем особисто, тому можливість спільного використання коду була б кориснішою, якби ви змогли десь завантажити та поділитися посиланням. Але якщо це неможливо, можливо, ви могли б пролити трохи світла на тему "Мій алгоритм був кодований вручну з кількох опублікованих описів" - чи могли б ви навести ті, які ви використовували, якщо хтось інший захоче йти за вашими слідами та реалізовувати їх?
Срібна рибка

0

Я тільки сам потрапляю в DTW і особисто не користувався згаданими нижче пакетами, але сподіваюся, що наступне може вам допомогти.

Проект Cran.R, зокрема: • "ts" є базовим класом для регулярно розташованих часових рядів з використанням числових часових позначок. • Пакет "зоопарк" забезпечує інфраструктуру для регулярно І НЕПРЕГАЛЬНО розставлених часових рядів, використовуючи довільні класи для часових позначок. Він розроблений так, щоб максимально узгоджувався з "ц". • зоопарк: інфраструктура S3 для регулярних і нерегулярних часових рядів (впорядковані спостереження Z)

Посилання: http://cran.r-project.org/web/views/TimeSeries.html та http://cran.r-project.org/web/packages/zoo/index.html

Найкращі побажання.


1
Моє запитання стосувалося адаптації ДТВ як методу до контексту нерегулярних часових рядів. Такі пакети, як Zoo, не дозволяють вирішити цю проблему.
Ремі D

0

TSdist має функцію, яка визначає відстань через dtw. Він приймає нерегулярні часові ряди зоопарку


1
"Приймає" не означає, що він обробляє їх. Ви завжди повинні перевіряти вихідний код функції.
Ремі D
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.