我是一个机器学习新手,我正在做一个项目,我得到一个整数序列,所有这些整数都在 0 到 70 的范围内。我的目标是在给定前 5 个整数的情况下预测序列中的下一个整数相同的顺序。关于整数序列本身的信息并不多(例如,如何获得序列等)。
以下是我尝试过的事情。
- 首先想到的是使用具有 5 个输入时间步长和一个输出的 LSTM 回归模型(对应于序列中的下一个整数 - 在 Keras 中,这将是 return_sequences=False)。我自己传递了 5 个之前的整数作为输入。这导致模型一直在预测几乎平均值(~30)。
- 我尝试了上面(1)中的模型,但输入时间步长更多(比如 100),但仍然没有改进。
- 然后我尝试了(1)和(2),但这次使用连续整数之间的差异作为输入,并尝试预测与序列中下一个整数的差异。这样做的结果仍然很糟糕。
- 然后,我通过对输入和输出进行单热编码尝试了 LSTM 分类模型,因为我知道序列中的所有整数都在 0 到 70 的范围内。同样,没有任何改进。
- 然后我尝试了一个 seq2seq(编码器-解码器)LSTM 模型,编码器中有 5 个输入,解码器中有 5 个输出,正确的输出也被输入解码器(教师强制)。结果还是很糟糕。
此时我开始怀疑我是否可以在给定数据上训练模型,以及给定数据是否只是一堆随机整数。
我寻找统计测试来确定数据是否是随机的,并发现了pandas autocorrelation plot。这是根据连续整数之间的差异绘制的图(使用实际整数本身绘制时看起来相似)。
据我了解,由于这些值非常接近于零,这意味着数据是随机的。是对的吗 ?
我还使用了 statsmodels“plot_acf”,下面是我得到的连续整数之间差异的图。
我看到当滞后为 1 时存在一些负相关。为什么使用 pandas 的 autocorrelation_plot() 没有显示在图中?
我也尝试建立一个 AR(自动回归)模型,但结果仍然很糟糕。
序列中整数的直方图似乎也表明整数是随机的(所有值的计数大致相同,除了一些更高的整数)。
我是否在浪费时间尝试构建机器学习模型来预测序列中的下一个整数?


