Стратегії збільшення даних для прогнозування часових рядів


13

Я розглядаю дві стратегії для "збільшення даних" для прогнозування часових рядів.

По-перше, трішки тла. Провісник прогнозувати наступний крок часових рядів це функція , яка , як правило , залежить від двох речей, часових рядів минулих станів, а й минулих станів предіктора:P{Ai}

P({Ait1},PSt1)

Якщо ми хочемо налагодити / навчити нашу систему для отримання хорошого , тоді нам знадобиться достатня кількість даних. Іноді доступних даних буде недостатньо, тому ми розглядаємо можливість збільшення даних.P

Перший підхід

Припустимо, у нас є часовий ряд , з . І припустимо також, що у нас є який відповідає такій умові: .{Ai}1inϵ0<ϵ<|Ai+1Ai|i{1,,n}

Ми можемо побудувати новий часовий ряд , де - реалізація розподілу .{Bi=Ai+ri}riN(0,ϵ2)

Тоді, замість того, щоб мінімізувати функцію втрат лише над , ми робимо це також над . Отже, якщо процес оптимізації здійснює кроків, нам доведеться "ініціалізувати" прогноз рази, і ми обчислимо приблизно внутрішніх станів прогнозованого.{Ai}{Bi}m2m2m(n1)

Другий підхід

Ми обчислюємо як і раніше, але не оновлюємо внутрішній стан використовуючи , але . Ми використовуємо ці дві серії разом під час обчислення функції втрат, тому обчислимо приблизно внутрішніх станів прогноктора.{Bi}{Bi}{Ai}m(n1)

Звичайно, тут обчислювальна робота менше (хоча алгоритм трохи потворніший), але наразі це не має значення.

Сумніви

Проблема полягає в тому, що: зі статистичної точки зору, який "найкращий" варіант? І чому?

Моя інтуїція підказує мені, що перший краще, тому що він допомагає "регулювати" ваги, пов'язані з внутрішнім станом, тоді як другий лише допомагає регулювати ваги, пов'язані з минулим спостережуваним часовим рядом.


Додатково:

  • Будь-які інші ідеї зробити збільшення даних для прогнозування часових рядів?
  • Як зважити синтетичні дані у навчальному наборі?

Відповіді:


6

Будь-які інші ідеї зробити збільшення даних для прогнозування часових рядів?

Зараз я думаю про ту саму проблему. Я знайшов статтю "Збільшення даних для класифікації часових рядів за допомогою згорткових нейронних мереж" Le Guennec et al. що не охоплює прогнозування. Все ж згадані там способи нарощування виглядають багатообіцяючими. Автори повідомляють 2 методи:

Нарізка вікон (WS)

Перший метод, натхненний спільнотою комп'ютерного зору [8, 10], полягає у витягуванні фрагментів із часових рядів та виконанні класифікації на рівні фрагментів. Цей метод був введений для часових рядів у [6]. На тренуванні кожному фрагменту, вилученому з часового ряду класу y, присвоюється один і той же клас, а класифікатор вивчається за допомогою фрагментів. Розмір зрізу є параметром цього методу. У час тестування кожен фрагмент із тестового ряду часу класифікується за допомогою вивченого класифікатора і для більшості голосів виконується рішення про прогнозовану мітку. Даний метод називається нарізкою вікон (WS) у наступному.

Викривлення вікон (WW)

Останній метод доповнення даних, який ми використовуємо, є більш специфічним для часових рядів. Він полягає в викривленні випадковим чином вибраного фрагмента часового ряду шляхом прискорення його вгору або вниз, як показано на рис. 2. Розмір вихідного фрагмента є параметром цього методу. На рис. 2 показаний часовий ряд із набору даних "ECG200" та відповідних перетворених даних. Зауважте, що цей метод генерує вхідні часові ряди різної довжини. Щоб вирішити цю проблему, ми виконуємо нарізку вікон за трансформованими часовими рядами, щоб усі мали однакову довжину. У цій роботі ми розглядаємо лише коефіцієнти викривлення, що дорівнює 0.5або 2, але можна використовувати й інші співвідношення, і оптимальне співвідношення можна навіть точно налаштувати шляхом перехресної перевірки на тренувальному наборі. Далі цей метод буде називатися викривленням вікон (WW).

Рис. 2 з паперу

Автори залишили 90% серії незмінними (тобто WS було встановлено на 90% зріз, а для WW 10% серії було викривлено). Повідомляються про методи зменшення похибки класифікації на кількох типах даних (часових) рядів, за винятком 1D-зображень контурів зображень. Автори взяли свої дані звідси: http://timeseriesclassification.com

Як зважити синтетичні дані у навчальному наборі?

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

  1. Часовий ряд не легко сприймається як суміжний об’єкт для людини, тому залежно від того, наскільки ви його підробляєте, це все-таки той самий клас? Якщо ви лише трохи наріжте і перекосте, а класи візуально відрізняються, це може не створювати проблем для класифікаційних завдань
  2. Щодо прогнозування, я б це заперечив

    2.1 WS - це ще приємний метод. Незалежно від того, на яку 90% -ну частину серії ви дивитесь, ви все одно очікуєте прогнозу, виходячи з тих же правил => повна вага.

    2.2 WW: Чим ближче це станеться до кінця серії, тим обережнішим я був би. Інтуїтивно зрозумів би, що коефіцієнт ваги ковзає між 0 (викривлення в кінці) та 1 (викривлення на початку), припускаючи, що найбільш актуальні особливості кривої є найбільш актуальними.


6

Будь-які інші ідеї зробити збільшення даних для прогнозування часових рядів?

Ще одна відповідь з іншим підходом, заснованим на «Збільшення набору даних у просторі функцій» ДеВріс та Тейлора.

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

Звучить мені багатообіцяюче. У принципі ви можете взяти будь-який автокодер для створення представлень у просторі функцій. Ці особливості можна інтерполювати або екстраполювати.

На малюнку показано в якості прикладу інтерполяції двох векторів простору ознак і (слід пам'ятати , що більш позитивні результати наводяться для екстраполяції з двох векторів, см папір для деталей). Потім отриманий доповнений вектор декодується назад у вхідний простір і подається в мережу для тренувань.C k C CjCkC

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

архітектура збільшення AE

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


4

Нещодавно я застосував ще один підхід, натхненний цією роботою від Бергмейра, Хайндмана та Бенітеса.

Ідея полягає в тому, щоб взяти часовий ряд і спершу застосувати таке перетворення, як перетворення Box Cox або Yeo-johnson (яке вирішує деякі проблеми з Box Cox), щоб стабілізувати дисперсію серії, а потім застосувати розклад STL на трансформовану серію для сезонних серій або льосового розкладання, щоб отримати залишки серії. Взяття цих залишків і завантаження їх за допомогою рухомого блочного завантажувального пристрою для створення додаткової серіїЦі додаткові серії потім мають початкову тенденцію і сезонність стартової серії додаються назад до завантажених залишків до останнього інвертування силового перетворення, застосованого на першому етапі.BB

Таким чином можна створити стільки додаткових часових рядів, які досить добре представляють початковий часовий ряд. Ось приклад програми щодо деяких реальних даних для створення додаткових подібних часових рядів:

Доповнений ряд

Тут збільшення показано за допомогою перетворення Йе-Джонсона, а не Box Cox, як запропоновано в оригінальному документі.

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