我的数据集包含先前结果的 100000 个值。基于此,我想预测下一个值。
数据集看起来像这样。
0 1 1 1 0 0 1 0 1 0 0 0 0 1 。 .. ...
根据这些结果我想预测下一个结果。
我正在尝试不同的方法,例如 GradientBoosting、支持向量机 (SVM) 和基本神经网络,但无法实现。
除了要使用的模型类型之外,您还应该更好地定义您到底要预测什么。通常,对于这些类型的序列,您将定义一个观察窗口(例如 10 个值)并预测下一个值。这将为您提供一个训练数据集,其中包含所有连续的 10 个值集,并将下一个值作为预测目标。
选择合适的观察窗口长度很重要,因为太短的窗口将没有足够的信息让模型学习模式,而窗口太大会减少您可以使用的训练样本量,而且也可能太长。大的模型可以找到代表性模式,而不是虚假模式。
对于这种选择,您有两种选择:要么您知道这些值代表什么,并且对需要多少数据来预测下一个值有一些合理的直觉;要么您知道这些值代表什么。或者您只需尝试不同的长度并检查哪种效果最好。
还有第三种选择,那就是意识到实际上没有模式。例如,如果 0 和 1 代表抛硬币,那么您最多可以使用过去的数据来检查硬币是否公平,但最终预测仍然是二项式分布中的随机样本(其中 p( x) 通过过去观察的统计平衡得知,但在公平硬币的情况下,有 50-50 的机会)。