• Как формируются x_train и y_train для временных рядов
  • В чём особенности формирования обучающей и проверочной выборок
  • Какие архитектуры используются для прогнозирования временных рядов
  • Что такое проблема автокорреляции? Как она решается?
  • Решение проблемы разбалансировки

Временно́й ряд (динамический ряд, ряд динамики) — собранный в разные моменты времени статистический материал о значении каких-либо параметров (в простейшем случае одного) исследуемого процесса. Каждая единица статистического материала называется измерением или отсчётом, также допустимо называть его уровнем на указанный с ним момент времени. Во временном ряде для каждого отсчёта должно быть указано время измерения или номер измерения по порядку. Временной ряд существенно отличается от простой выборки данных, так как при анализе учитывается взаимосвязь измерений со временем, а не только статистическое разнообразие и статистические характеристики выборки. (Википедия). Примеры:

  • Стоимость акций
  • Аудиосигнал
  • Температура

x_train и y_train обычно формируются следующим образом. Выбирается несколько последовательных значений временного ряда, например 10. Эти значения записываются в x_train. Следующее одно или несколько значений записываются в y_train. Затем окно сдвигается на определенный шаг, например на 1 и процесс повторяется. При этом данные с y_train попадут в x_train в новой выборке.

Для того, чтобы проверить работу нейросети на данных, которые нейросеть не видела, проверочную выборку берут в стороне от тренировочной, при этом расстояние между тренировочной и тестовый выборками должно быть не меньше чем окно xLen.

Во временных рядах мы можем нормировать и xTrain, и yTrain.
Возможно применение следующей нормализации:
1. N (0, 1) — StandardScaler
2. [-1; 1] — MinMaxScaler
3. [0; 1] — MinMaxScaler
Благодаря нормализации данных на вход сети будут подаваться не сами значения, а разница между последовательностью значений. Так сети
работают гораздо лучше. Так же желательно минимизировать влияние трендов при помощи дифференцирования входных данных. В данном случае дифференцирование это вычитание текущего значения из следующего.

Для прогнозирования временных рядов используются, полносвязные, рекурретные, одномерные свертки и сложные архитектуры.

Автокорреляция это одна из проблем нейросетей для анализа временных рядов. Нейросеть в процессе обучения учится не предсказывать следующее значение ряда, а просто выдавать за него последнее значение в x_train. Для того чтобы обнаружить автокорреляцию необходимо построить график самого ряда и предсказаний нейросети. В случае автокорреляции график предсказаний будет сдвинут по оси Х.

Также можно получить коэффициент автокорреляции средствами numpy

np.corrcoef(x_t_np, x_t_1_np)
Методы борьбы с автокорреляцией это:
  • Подбор архитектуры нейросети
  • Подготовка входных данных, например дифференцирование.
https://colab.research.google.com/drive/1yDj8iC3pe8Jm6SyFaZ6U4YYNEYOIkcwB

 

0

 

Добавить комментарий