如何在神经网络中将日期编码为输入?


12

我正在使用神经网络预测时间序列。我现在面临的问题是如何编码日期/时间/序列号。每个输入集合中的哪一个作为神经网络的输入?

我应该按此处所述使用C编码中的一种(用于编码类别)吗?

还是我应该只提供时间(自1970年1月1日以来的毫秒数)?

还是只要按时间顺序提供其余数据,就没有必要提供时间吗?


如果您使用神经网络来预测时间序列,我不确定为什么您认为没有必要添加时间
scaaahu 2013年

有很多编码日期/时间的方法。有助于了解时间序列的性质。它不是先验的东西要么排除,或规则英寸
VZN

@vzn我正在尝试预测一般的财务时间序列。如果有帮助。
Shayan RC

Answers:


17

神经网络不是魔术。如果您像对待它们一样对待他们,并且只是向他们扔数据而没有想到您会度过非常糟糕的时光。

您需要停下来问自己:“自1970年以来的毫秒数实际上可以预测我感兴趣的事件吗?” 您应该立即得到的答案是否定的。为什么?对于您实际上关心的每个实例(将来发生的事件,过去的事情已经发生),时间变量的值将大于时间变量在训练数据中所取的任何值。这样的变量不太可能有帮助。更糟糕的是,如果您不小心,可能会导致过度拟合(对于强大的非线性模型(如神经网络)来说是一个严重的问题)。

现在可能有意义的是一个变量,例如一年中的一周或一个月,可以帮助您模拟季节或年度影响。我在农业疾病预测方面做了一些工作,朱利安·戴维最终成为一个非常重要的变量。基于这种经验,我认为您最好将这种类型的变量编码为分类变量而不是序数,您的经验可能会更好。请注意,一年中的月份或一周是可重复的事件,您可能会在训练数据中多次看到该事件,并且可以解释为什么这样的变量会影响财务结果。将此与1970年以来的毫秒数进行对比,这只是一个单调增加的值。

最后,从您的陈述中说:“或者,只要我按时间顺序将其余数据馈入,是否就不需要时间?” 听起来您可能不太了解神经网络的工作原理。使用标准的前馈神经网络,将数据馈入网络的顺序不会对预测产生影响。如果您使用的是随机或小批量梯度下降,则订单可能会影响训练,但这只是迭代(而不是批处理)训练方法的人工产物。如果要使用神经网络对时间依赖性进行建模,则需要使用诸如滑动窗口或递归神经网络之类的方法。


2

[1,1][0,1]sin(t)

f(t)f(t)dt=ft+gtgtft

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.