神经网络回归 – 考虑动态状态

我正在使用Tensorflow解决一个回归问题,其中包含已知的动态成分,也就是说,我们知道在时间t的(单一)标签依赖于环境的某种动态状态,但这个特征是未知的。通过简单的回归尝试解决这个问题,理所当然地失败了,这证实了我们的假设,即存在某种我们无法访问的特征所带来的动态影响。

然而,时间t的环境状态应该在某些地方反映在时间t0-n已知的特征和标签中(特别是它们之间的相互作用),其中n > 0。不幸的是,由于问题的性质,时间t的输出在很大程度上依赖于时间t的输入,其依赖程度与环境的动态状态相当。我担心这使得我想尝试的方法无效——在我看来,时间序列预测会考虑前几个时间步的特征,但不会考虑当前时间步的输入。此外,我知道前几个时间步的标签,但在我想进行预测的时间点却不知道这些标签。

下面是一个表格来说明这个问题:

t 输入 输出
0 x(t=0) y(t=0)
t0-1 x(t=t0-1) y(t=t0-1)
t0 x(t=t0) y(t=t0)=?
  • 如何利用我所掌握的所有信息来预测y(t=t0)的值,使用x(t=t0)(其中x是输入特征的数组)和前几个时间步的特征和标签的定义窗口?
  • 是否有解决此类问题的既定方法,无论是使用神经网络还是其他模型?
  • 这个问题是否需要结合多种方法,如果是,哪些方法可能适合解决它?

最终模型将被部署,并继续适用于未来的时间窗口。我们知道相关时间窗口的大小大约是过去100个时间步。


回答:

我所描述的问题类型,我后来了解到,与所谓的外生变量有关。在我的情况下,我需要一种称为NNARX的东西,它在核心上类似于ARMAX模型,但作为神经网络,可以考虑非线性因素。

总的想法是引入一个LSTM层,作为历史输入的编码器,然后与另一个包含外生变量的输入层耦合。两者在所谓的解码器——神经网络架构的其余部分——处耦合。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注