神经网络的编码日期/时间(循环数据)

机器算法验证 神经网络 深度学习
2022-02-28 22:18:05

如何为神经网络编码事件的日期和时间?

我没有连续的时间序列,而是一些有日期和时间的事件,我分析了某种兴趣。这种兴趣在早上和晚上不同,在工作日之间,在夏季和冬季之间,在圣诞节和复活节之前等等。并且事件本身随着时间的推移具有很强的不均匀分布(白天多于晚上,有些种类在一周内更多,有些在周末更多)。

我尝试将其编码为一年中的周数,工作日 1-7 和一天中的小时。但是使用稀疏自动编码器给我的印象是我的数据对神经网络没有任何意义,即使有一个很大的隐藏层,它甚至无法在输入附近重现任何东西。既不是分类 0-1,也不是标准化值。

但是搜索神经网络的时间编码主要是提供有关时间序列的信息,所以我有点被森林蒙住了眼睛,而是在寻找树。

当然,我可以查看数据并粗略地对其进行或多或少的专制分类。但深度学习的概念似乎扫除了所有手工制作的手动特征提取。并且分类会在一个自然连续的输入变量中插入大的跳跃。

我大脑中的“自然编码”更像是“夜晚”、“早上”、“工作日”等某些类别的模糊隶属关系。

为了使整个事情更有趣,从属变量也包含那些日期/时间数据,但这是一个不同的问题。

编辑:在某种程度上与循环类型的数据相关的是一些最近的问题,比如

对于这个时间数据集,哪些统计测试是合理的?

3个回答

我正在寻找类似问题的答案并偶然发现了这个线程。这篇博文探讨了正弦编码的思想:

编码循环连续特征 - 24 小时制

伊恩的回答完全满足了我的需求,所以我想把它贴在这里以备将来记忆。

您可以尝试将时间表示为一个大矩阵,即 365 x 24,以表示一年中的日子和一天中的小时,然后将其“展开”成一个 1 x 8760 的向量。然后,时间将对应于该向量内的位置,该位置的值就是当时的值。

我建议使用您知道(或相信)数据中已经存在的关系从时间序列中创建多个输入特征。例如,您声明目标输出会有所不同:

早晚之间,平日之间,夏季和冬季之间,...

那么为什么不创建一组描述每个“周期”的特征呢?这可能有助于梳理出微观和宏观变化,而不是描述所有的单一特征。

例如...

如果您有趋势,即每天中午左右会发生一些有趣的事情,那么创建一个特征1..24描述一天中的时间。现在网络将学会在 12 点左右触发。将其与您将相同的数据编码为一周中的小时数的情况进行比较1..168. 现在网络必须尝试学习触发12,36,60...这要复杂得多。