Tensorflow: экзогенный функциональный ключ вызывает KeyError при вызове прогноза StructuralEnsembleRegressor

У меня есть реализация тензорного потока для прогнозирования временных рядов. Мои данные содержат экзогенные функции, я предоставляю их в своем вводе поезда и оцениваю ввод. На этапе прогнозирования predict_continuation_input_fn вызывает KeyError для моего столбца экзогенных функций. Вот упрощенная версия моего кода:

features = (ex_0, ex_1, ex_2)
reader = tf.contrib.timeseries.CSVReader(
  _DATA_FILE,
  column_names=(tf.contrib.timeseries.TrainEvalFeatures.TIMES, tf.contrib.timeseries.TrainEvalFeatures.VALUES) + features,
  column_dtypes=(tf.int64,tf.float32,tf.float32,tf.float32,tf.float32),
  skip_header_lines=1)

estimator = tf.contrib.timeseries.StructuralEnsembleRegressor(
  periodicities=[20],
  num_features=1,
  exogenous_feature_columns= [tf.contrib.layers.real_valued_column(column_name=f, dimension=1) for f in features])

train_input_fn=tf.contrib.timeseries.RandomWindowInputFn(reader, batch_size=4, window_size=100)
estimator.train(input_fn=train_input_fn, steps=20)

evaluation_input_fn = tf.contrib.timeseries.WholeDatasetInputFn(reader)
evaluation = estimator.evaluate(input_fn=evaluation_input_fn, steps=1)

predict_input_fn = tf.contrib.timeseries.predict_continuation_input_fn(
      evaluation, steps=100)
(predictions,) = tuple(estimator.predict(input_fn=predict_input_fn))

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

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


person kokeksibir    schedule 19.01.2018    source источник


Ответы (1)


Вы, наверное, разобрались, но если нет — вам нужно предоставить дополнительные экзогенные признаки, соответствующие временному окну предсказания будущего (т.е. не такие, как те, которые вы предоставляете для обучения и оценки).

См. пример здесь: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/timeseries/examples/known_anomaly.py#L126

person bobblebub    schedule 30.10.2018