如何准确预测时间序列?

人工智能 机器学习 时间序列
2021-10-23 06:28:28

我正在尝试预测外汇时间序列。市场的本质是80%的时候价格是无法预测的,但有20%的时候是可以预测的。例如,如果价格下跌非常深,有 99% 的概率会有一个恢复过程,这就是我要预测的。

那么,我该如何训练一个前馈网络,让它只预测那些有 99% 的确定性发生的情况,而对于其余的情况,它会输出“不可预测”的状态?

想象一下,我的数据集有 24 小时的连续价格数据作为输入(作为 1 分钟的样本),然后作为输出,我希望网络预测 1 小时的未来价格数据。我需要实施的唯一限制是,如果网络不能“确定”价格是可预测的,它将超过 0。那么,如何在网络输出的预测中实现安全性呢?

看来我的问题类似于 Google Compose,它会在您输入时预测下一个单词,例如,如果您输入“thank you”,它会添加“very much”,这将是 95% 正确。我想要同样的,但只是我的问题太复杂了。谷歌使用 RNN,所以也许我应该尝试多层 RNN 的深度网络?

3个回答

像这样的事情现在是一个非常热门的研究课题,在股票市场这样的混乱系统上很难获得高精度。话虽如此,我可能会建议对您的数据进行预处理,而不是让您的主要神经网络决定接受什么,不接受什么。

例如,在您的特定情况下,您可以将泡沫破裂建模为负指数下降或类似的东西。这也可能包括机器学习。您可以收集股市数据的历史跌幅,并使用某种回归(贝叶斯可能会很好)来估计最佳函数,以用作指示是否发生急剧下跌的指标。如果是这样,那么请专门使用您的神经网络对股票的命运进行分类。我认为你会按照这样的专业路线获得更大的成功,而不是尝试根据市场的总体趋势来训练网络。

就神经网络的结构而言,您可能需要考虑使用卷积神经网络 (CNN) 而不是递归神经网络 (RNN)。RNN 假设您的时间序列中的当前点取决于所有先前的点,从您的数据开始。我不认为这对股市普遍适用。CNN 学习的过滤器适用于学习提取某些特征,并且 CNN 将以它认为最佳的方式将过滤器应用于数据的特定部分。它们都是非线性模型,但 CNN 的训练计算成本会更低。您还可以尝试使用梯度增强回归方法而不是神经网络。话虽如此,像 LSTM RNN(长期短期记忆)之类的东西并不一定是坏的——只是我的两分钱。

我不知道您将如何将您的数据应用到技术中,我将简要概述时间序列预测中使用的技术:

  • 扩展卡尔曼滤波:这是一种控制系统方法,通常用于控制导弹的轨迹。这是我们堆栈中有关此主题的一个问题(基于 EKF 论文)。您可以查看论文以获取更多详细信息。
  • Echo State Networks:这是一种 ML/NN 方法,基于神经科学中使用的液体状态机的思想。资源同上。
  • RNNs/LSTMs/GRUs - 当您不想深入研究统计方法时,这可能是预测任何时间序列数据的最流行方法。
  • ARMA/ARIMA 模型:具有大量数学的完全统计方法,但已完成实现的库可用。
  • 深度信念网络:人们还尝试使用固定数量的先前状态输入到 DBN 来预测时间序列。它有点受欢迎所以我决定把它放在这里。

最后,您可以查看有关时间序列建模方法的概述。强化学习也用于时间序列预测,但据我所知,这样做并不容易。这是谷歌学术搜索结果

Tbh 我认为股票价格基本上是不可能预测的,因为你没有考虑到来自股票市场之外的数据。

我认为任何成功的模型都需要接受新闻、消费者情绪等方面的培训。

唯一可能起作用的是高频交易。