Я использую LSTM в KERAS для прогнозирования временных рядов с использованием скользящего окна. Считая на шаг впереди данные проверки (я не использую данные проверки для ранней остановки) и устанавливая количество эпох на 40
, количество единиц на 10
, а также используя 1000
выборки дляобучение и 10
особенности, форма потери проверки немного странная. Потеря проверки начинается с низких значений, увеличивается и снова уменьшается. Почему у нас такое поведение? Я должен отметить, что это не единственное поведение, но большинство моделей следуют за утратой проверки формы колокола (как вы можете видеть, коричневая линия следует за общей формой потери проверки). Вероятно, я думаю, что если я добавлю раннюю остановку, это не будет хорошо работать. Также я использую StandardScaler
для нормализации функций и использую вывод без нормализации. Функция активации LSTM - tanh
, выходной слой имеет relu
, потому что прогнозируемое значение всегда положительное, и я использую 21 лаг функций.
- На этих рисунках каждая строка связана с одним из этапов (скользящее окно) в прогнозировании (я тренирую модельна каждом шаге путем добавления последних данных).
Ps. Если я остановлю прогнозирование только после двух эпох, значения прогноза будут близки к нулю. Я должен отметить, что большинство значений в моем временном ряду - это новый ноль (что-то между 0 и 1) с некоторыми редкими скачками (что-то вроде 10, 50 или 100). Здесь коричневый - скачок в данных. Но, как вы, возможно, знаете, это значение оказывает огромное влияние на MSE. Вот почему большую часть времени линейная модель работает лучше, чем LSTM, потому что она не может обнаружить такой огромный скачок, поэтому у нас более высокий средний MSE для тестовых данных.