结合两种输入类型(TIME_SERIES_INPUT和AUXILIARY(static)_INPUTS)的最合适模型?

时间:2018-08-02 05:23:59

标签: python keras time-series lstm

因此,我搜索了一些有关重塑问题的文章和Issue文章,但到目前为止,这些解决方案似乎都对我不起作用。

该项目的目标是:预测各商店和SKU的每周销售额(衣服的属性:例如颜色/尺寸)。

数据集的结构如下:

Week, store_id, color, size, last_week_sales, last_2week_sales_(sales two weeks),actual_sales(the one we want to predict) 1, 341, red, LL, 0, 1, 1 1, 341, yellow, M, 2, 4, 2 1, 341, blue, S, 2, 2, 3 2, 342, blue, M, 2, 3, 1 2, 342, green, S, 2, 3, 2

因此,每周,每条记录都是通过功能(衣服的属性和store_id等)的组合而唯一的

每周的记录数不同。

2018年8月23日更新:

我尝试了完全连接的NN,但是正确性约为75%,无法通过各种方式进行改进。我想知道是否还有其他方法可以解决此问题,请先谢谢!

1 个答案:

答案 0 :(得分:1)

“重塑问题”是由于对自己的数据和预测目标缺乏了解。 LSTM(通常是RNN)期望向量序列数据结构。本质上,您想对某些函数f(x)进行建模,其中功能随时间变化,x = x(t),因此f(x)可以重写为f(t)。这在示例数据集中并没有特别明显,因为只有一小部分功能(销售)是随时间变化的。

您可以做的是将单个时间段视为一个向量,其元素是静态特征(颜色,商店ID等)加上一个销售实例。这样,完整样本将是由N个垂直堆叠的时间片组成的矩阵,其中N是您拥有的时间片计数。这些样本的许多实例都是批处理,即3维张量,它是循环网络的预期输入。

如果您不只是为了实验和学习而这样做,您应该记住这是一种不好的方法。您的功能没有任何时间结构,从直觉上讲,它们不应对下周的销售产生任何预测潜力。此外,在这里使用RNN是一个过大的选择,您肯定会过度拟合数据集。