Какой показатель оптимизации для разностных данных при многоэтапном прогнозе? - PullRequest
0 голосов
/ 16 апреля 2019

Я написал LSTM в Керасе для одномерного прогнозирования временных рядов. Я использую окно ввода размера 48 и окно вывода размера 12, то есть я предсказываю 12 шагов одновременно. В целом это хорошо работает с метрикой оптимизации, такой как RMSE.

Для нестационарных временных рядов я дифференцирую данные перед подачей данных в LSTM. Затем, после предсказания, я беру обратную разницу в предсказаниях.

При различении RMSE не подходит в качестве показателя оптимизации, поскольку более ранние этапы прогнозирования намного важнее, чем более поздние этапы. Когда мы создаем обратную разницу после создания 12-ступенчатого прогноза, тогда более ранние (разностные) этапы прогнозирования будут влиять на обратную разницу последующих шагов.

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

Такая метрика уже существует или я должен написать свою собственную? Я что-то пропускаю?

1 Ответ

0 голосов
/ 16 апреля 2019

Только что написал свою собственную метрику оптимизации, похоже, она работает хорошо, конечно, лучше, чем RMSE.

Все еще любопытно, какова лучшая практика здесь.Я относительно новичок в прогнозировании.

from tensorflow.keras import backend as K

def weighted_rmse(y_true, y_pred):
    weights = K.arange(start=y_pred.get_shape()[1], stop=0, step=-1, dtype='float32')
    y_true_w = y_true * weights
    y_pred_w = y_pred * weights
    return K.sqrt(K.mean(K.square(y_true_w - y_pred_w), axis=-1))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...