Особливості класифікації часових рядів


43

Я розглядаю проблему (багатокласової) класифікації на основі часових рядів змінної довжини , тобто знайти функцію за допомогою глобального представлення серії часу набором вибраних функцій фіксованого розміру незалежно від , а потім використовувати стандартні методи класифікації для цього набору функцій. Мене не цікавить прогнозування, тобто прогнозуванняf ( X T ) = y [ 1 .. K ]Tv i D T ϕ ( X T ) = v 1 , , v DR ,

f(XT)=y[1..K]for XT=(x1,,xT)with xtRd ,
viDT
ϕ(XT)=v1,,vDR ,
xT+1. Наприклад, ми можемо проаналізувати, як людина ходить, щоб передбачити стать людини.

Які стандартні функції я можу взяти до уваги? Наприклад, ми, очевидно, можемо використовувати середню і дисперсію серії (або моменти вищого порядку), а також заглянути в частотну область, подібно до енергії, що міститься в певному інтервалі дискретного перетворення Фур'є серії (або дискретної перетворення вейвлетів ).

Відповіді:


45

Прості статистичні характеристики

  • Значить у кожному з вимірівd
  • Стандартні відхилення цих розмірівd
  • Асиметрія , Ексцес і вищий порядок моменти вимірюваньd
  • Максимальні та мінімальні значення

Особливості аналізу серій часу

  • У взаємної кореляцією між кожним вимірюванням і Авто-Кореляціядd×d1 d
  • Замовлення авторегресивної (AR), інтегрованої (I) та ковзної середньої (MA) частини оціночної моделі ARIMA
  • Параметри частини AR
  • Параметри частини MA

Функції, пов’язані з частотою домену

Див. Morchen03 для вивчення особливостей енергозбереження на DFT та DWT

  • частоти піків за амплітудою в DFT для зменшених розмірівдk d
  • k -квантилів цих DFT

1
Еміле, це питання схоже на те, що я щойно ставив ( stats.stackexchange.com/questions/51475/… ). Чи зможете ви опублікувати будь-який код R для функцій DFT?
B_Miner

Чи існує який-небудь метод, заснований на формиках для часових рядів змінної довжини?
Симона

8

Еміле, я думаю, що функції, вказані у вашій відповіді, є досить хорошими вихідними пунктами, хоча, як завжди, я вважаю, що доменний досвід (або, принаймні, добре, довго думайте) щодо вашої проблеми не менш важливий.

Ви можете розглянути можливість включення функцій, обчислених похідними (або інтегралами) вашого сигналу. Наприклад, я б заперечив, що швидке прискорення / уповільнення є досить хорошими прогнозами схильності до їзди. Ця інформація, очевидно, все ще присутня в сигналі позиції, але вона не є настільки очевидною.

Ви також можете розглянути можливість заміни коефіцієнтів Фур'є на представлення пакету вейвлет або вейвлет. Основна перевага вейвлетів полягає в тому, що вони дозволяють локалізувати функцію як за частотою, так і за часом, тоді як традиційні коефіцієнти Фур'є обмежуються лише часом. Це може бути особливо корисно, якщо ваші дані містять компоненти, які нерегулярно включаються / вимикаються або мають квадратні хвилеподібні імпульси, які можуть бути проблематичними для методів Фур'є.


6

Як запропоновано інші відповіді, існує величезна кількість характеристик часових рядів, які можна використовувати як потенційні особливості. Існують прості функції, такі як середні, пов'язані з часовим рядом ознаки, такі як коефіцієнти моделі AR або дуже складні функції, такі як тестова статистика тесту гіпотези розширеного дикі.

Всебічний огляд можливих особливостей часового ряду

Пакет python tsfresh автоматизує вилучення цих функцій. Документація описує різні розрахункові особливості. Ви можете знайти сторінку з розрахованими функціями тут .

Відмова: Я один із авторів tsfresh.


5

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

Автокодер намагається вивчити функцію . Іншими словами, він намагається дізнатися наближення до функції ідентичності, щоб вивести , схожий на .Х Т Х Тf(XT)XTX^TXT

Функція ідентичності видається особливо тривіальною функцією, яку намагаються навчити; але розміщуючи обмеження в мережі, наприклад , обмежуючи кількість прихованих одиниць, ми можемо виявити цікаву структуру даних.

Екстрактор функцій

Таким чином, ваш бажаний буде еквівалентний вихідними значення шару в найближчому до центру глибокого автоассоціатора, якщо ви обмежуєте кількість прихованих блоків в середніх кімнатах в .Dϕ(XT)=v1,,vDRD

Крім того, ви можете використовувати безліч ароматів автоекодера, щоб знайти найкраще рішення вашої проблеми.



1

Залежно від тривалості часового ряду, звичайним підходом є епохація даних у сегменти, наприклад, 10 секунд.

Однак часто перед розбиттям часових рядів на сегменти доводиться виконувати певну попередню обробку, таку як фільтрування та відхилення артефакту. Потім ви можете обчислити різні функції, такі як ті, що базуються на частоті (тобто взяти FFT для кожної епохи), час (наприклад, середнє значення, дисперсія тощо часового ряду в цій епосі) або морфологію (тобто форму сигналу / часові ряди в кожну епоху).

Зазвичай функції, які використовуються для класифікації сегментів (епох) часового ряду / сигналу, залежать від домену, але аналіз Wavelet / Fourier - це просто інструменти, що дозволяють вивчити ваш сигнал у домах частоти / часу, а не самі функції.

У проблемі з класифікацією кожна епоха матиме ярлик класу, наприклад, "щасливий" або "сумний", тоді ви будете тренувати класифікатор, щоб розрізняти "щасливі" та "сумні" епохи, використовуючи 6 ознак, обчислених для кожної епохи.

У випадку, якщо кожен часовий ряд являє собою окремий випадок для класифікації, потрібно обчислити кожну особливість у всіх зразках часового ряду. FFT тут доречний лише в тому випадку, якщо сигнал є лінійним часовим інваріантом (LTI), тобто якщо сигнал можна вважати нерухомим протягом усього часового ряду, якщо сигнал не є нерухомим протягом періоду, що цікавить, може бути проведений вейвлет-аналіз більш доречним. Такий підхід означатиме, що кожен часовий ряд буде виробляти один особливий вектор і становитиме один випадок для класифікації.


Я завжди відчував, що розрив часових рядів, природно безперервний процес, до дискретних періодів (або епох) призводить до втрати інформації. Якщо в серії немає природних епох, як обирати епохи? Ймовірно, можна знайти епохи, які відповідають будь-якому бажаному результату.
Cam.Davidson.Pilon

1
Не впевнений, що епоху можна знайти відповідно до кожного результату, але для будь-якої практичної проблеми. З нестаціонарним сигналом вам потрібно знайти шлях для врахування тимчасових варіацій (якщо сигнал / часовий ряд адекватно описаний аналітично або є лінійним часовим інваріантом це не потрібно). Довжина епохи знову є специфічною для домену, але зазвичай вибирається такою, що є достатньо короткою, щоб сигнал був нерухомим протягом періоду часу (епохи), що становить інтерес.
BGreene

BGreene, ви могли б пояснити, яка користь від поділу серії на епохи для вибору ознак, що використовуються в класифікації? Я розглядаю цей розділ як помічник для подальших обчислень (тобто FFT), але не як щось, що стосується вибору самих функцій. Можливо, це пов’язано з «морфологією», яку ви згадали.
Еміль

Розбиття на епохи не має нічого спільного з вибором функцій. Якщо у вас тривалий сигнал (наприклад, 10 годин запису зразка при 100 ГГц), то для того, щоб вивчити, як змінюється сигнал з часом, потрібно розбити його на епохи. У проблемі з класифікацією кожна епоха матиме ярлик класу, наприклад, "щасливий" або "сумний", тоді ви будете тренувати класифікатор, щоб розрізняти "щасливі" та "сумні" епохи, використовуючи 6 ознак, обчислених для кожної епохи.
BGreene

Гаразд :) Це точно не пов'язане з моїм оригінальним запитанням. Я розглядаю випадок, коли клас маркує всю серію. Я збираюсь відредагувати своє запитання, щоб додати уточнюючий приклад.
Еміль
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.