我想为客户行为建立一个 LSTM 模型。这是我第一次在时间序列上工作,所以有些概念对我来说根本不清楚。
我的预测问题是多维的,这意味着我还想预测与每个客户的操作相关的许多信息。
数据集目前被塑造为单热编码特征(客户操作 + 其他信息)的二维填充数组列表,例如:
customer_id encoded_features
0 25464205 [[0,1,0],..,[1,1,1],[1,0,1],..,[1,0,1]]
1 56456574 [[0,1,1],..,[1,0,1],[1,0,1],..,[1,1,1]]
其中 encoded_features 条目中的每个元素代表一个特定的时间步长。
我的想法是使用 keras输入形状
(n. customers, n. timesteps, length of features encoding)
在上面的示例中,它将是(2,#timesteps,3).
我有两个主要问题:
这整个设置是否适合预测下一个客户的行为?我想简单地为某个客户提供一个新的功能序列,并预测下一个时间步的所有功能。
我正在考虑将数据(根据一定的比例)拆分为顺序训练和测试集,以便在未见过的特征向量上测试训练好的模型。在上面的示例中,它将是:
customer_id X_train y_train
0 25464205 [[0,1,0],..] [1,1,1]
1 56456574 [[0,1,1],..] [1,0,1]
customer_id X_test y_test
0 25464205 [[1,0,1],..] [1,0,1]
1 56456574 [[1,0,1],..] [1,1,1]
请注意,X_train 和 X_test 通常包含所有训练/测试事件,除了必须预测的最后一个事件。这是一个正确的解释吗?