我正在尝试使用 LSTM 来预测用户的日常使用情况。我有大量用户使用(比如说)90 天的数据。根据业务知识(和初步分析),我们知道用户大致分为不同的类别。例如,每日用户几乎每天都会有非零使用量,每周用户每 7 天会有一到两天的非零使用量,而每月用户每 30 天会有几天的非零使用量。
示例数据,其中每一列是从 10 月 1 日开始的一天,每一行是一个用户的数据。(每个用户的使用“周期”可能从任何一天开始)。
User 1: 10, 8, 10, 9, 0, 0, 11, ...
User 2: 0, 0, 0, 20, 0, 0, 0, 0, 0, 18, 0, 0, 0, ...
User 3: 40, 0, 0, 0, .....
其中用户 1 可能是“每日”用户,用户 2 是“每周”用户,用户 3 是每月用户。
我的第一个问题是,单个 LSTM/深度学习模型能否捕获这些不同类型的模式?目标是预测个人用户的每日使用情况(基于过去 90 天的未来几天)。
目前我正在使用一个非常简单的 LSTM(在 Keras 中):
model = Sequential()
model.add(LSTM(1, input_shape=(90, 1), unroll=True))
model.compile(optimizer='rmsprop', loss='mse')
为了帮助模型“捕捉”不同用户可能具有不同使用水平的事实,我添加了每个用户的平均使用量(非零值)作为每行的第一个数据点。每个用户的其余 90 个数据点仍如上表所示。
我的第二个问题是我是否真的需要添加这些值的平均值来“帮助”模型?
问题是即使在 100 个 epoch 之后,错误仍然保持不变。最后我可以改变什么来使它工作?
提前致谢。