Стратегии увеличения данных для прогнозирования временных рядов

13

Я рассматриваю две стратегии «увеличения данных» для прогнозирования временных рядов.

Сначала немного предыстории. Предиктор для прогнозирования следующего шага временного ряда - это функция, которая обычно зависит от двух вещей: прошлых состояний временного ряда, но также и прошлых состояний предиктора:п{Aя}

п({AяT-1},пST-1)

Если мы хотим настроить / обучить нашу систему для получения хорошего , тогда нам понадобится достаточно данных. Иногда доступных данных будет недостаточно, поэтому мы рассматриваем возможность увеличения данных.п

Первый подход

Предположим, у нас есть временной ряд с . И предположим также, что у нас есть , удовлетворяющее следующему условию: .{Aя}1яNε0<ε<|Aя+1-Aя|я{1,...,N}

Мы можем построить новый временной ряд {Вязнак равноAя+ря} , где ря - реализация распределения N(0,ε2) .

Тогда вместо минимизации функции потерь только над {Aя} , мы делаем это также над {Вя} . Итак, если процесс оптимизации занимает м шагов, мы должны «инициализировать» предиктор 2м раза, и мы вычислим примерно 2м(N-1) внутренних состояний предиктора.

Второй подход

Мы вычисляем {Вя} как и раньше, но мы не обновляем внутреннее состояние предиктора, используя {Вя} , а {Aя} . Мы используем только две серии во время вычисления функции потерь, поэтому мы вычислим приблизительно м(N-1) внутренних состояний предиктора.

Конечно, здесь меньше вычислительной работы (хотя алгоритм немного уродливее), но пока это не имеет значения.

Сомнение

Проблема в том, что со статистической точки зрения, какой вариант «лучший»? И почему?

Моя интуиция говорит мне, что первый лучше, потому что он помогает «упорядочить» веса, связанные с внутренним состоянием, в то время как второй помогает только упорядочить веса, связанные с наблюдаемым прошлым временным рядом.


Дополнительно:

  • Любые другие идеи, чтобы сделать увеличение данных для прогнозирования временных рядов?
  • Как взвесить синтетические данные в тренировочном наборе?
castarco
источник

Ответы:

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% серии были деформированы). Сообщается, что методы уменьшают ошибку классификации для нескольких типов данных (временных) рядов, за исключением одномерных представлений контуров изображения. Авторы взяли свои данные отсюда: http://timeseriesclassification.com

Как взвесить синтетические данные в тренировочном наборе?

В увеличении изображения, поскольку ожидается, что расширение не изменит класс изображения, на самом деле его обычно взвешивают как любые реальные данные. Прогнозирование временных рядов (и даже классификация временных рядов) может отличаться:

  1. Временной ряд не так легко воспринимается как непрерывный объект для людей, так что, в зависимости от того, насколько вы вмешиваетесь в него, остается ли он тем же классом? Если вы только нарезаете и деформируете немного, а классы визуально различимы, это может не создавать проблем для задач классификации
  2. Для прогнозирования я бы сказал, что

    2.1 WS по-прежнему хороший метод. Независимо от того, на какую 90% часть серии вы смотрите, вы все равно ожидаете прогноз, основанный на тех же правилах => полный вес.

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

ascripter
источник
6

Любые другие идеи, чтобы сделать увеличение данных для прогнозирования временных рядов?

Еще один ответ с другим подходом, основанным на «Расширении набора данных в пространстве объектов » ДеВриса и Тейлора.

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

Звучит многообещающе для меня. В принципе, вы можете использовать любой автоэнкодер для создания представлений в пространстве объектов. Эти функции могут быть интерполированы или экстраполированы.

На рисунке ниже в качестве примера показана интерполяция двух векторов пространственных и ( , что для экстраполяции из двух векторов сообщается о более положительных результатах, подробности см. В статье). Полученный в результате расширенный вектор затем декодируется обратно во входное пространство и подается в сеть для обучения.СJСКС'

В статье снова рассматривается только классификация последовательностей. Но опять-таки ИМО принципы одинаковы для регрессионного анализа. Вы получаете новые данные, предположительно, из того же дистрибутива, что и ваши реальные данные. Это то, что вам нужно.

архитектура АЕ увеличения

Если мы доработаем этот принцип генерации данных нейронной сетью, мы получим Генеративные состязательные сети (GAN) . Они могут использоваться аналогичным образом для генерации дополненных данных, что, вероятно, будет самым сложным современным способом сделать это.

ascripter
источник
4

Недавно я применил другой подход, вдохновленный этой статьей Бергмейра, Хиндмана и Бенитеса.

ВВ

Таким образом, может быть получено столько дополнительных временных рядов, сколько необходимо, чтобы представить начальный временной ряд достаточно хорошо. Вот пример применения некоторых реальных данных для генерации дополнительных похожих временных рядов:

Дополненная серия

Здесь увеличение показано с использованием преобразования Йео-Джонсона, а не Бокс Кокса, как предложено в оригинальной статье.

сонм богов
источник