时间序列预测(最终使用python)

时间:2010-08-27 12:27:44

标签: python neural-network time-series

  • 时间序列预测/回归有哪些算法?
    • 使用神经网络怎么样? (关于这个主题的最佳文档?)
    • 是否有可以提供帮助的python库/代码片段?

8 个答案:

答案 0 :(得分:70)

时间序列回归的经典方法是:

我所知道的其他不太常见的方法是

  • Slow Feature Analysis,一种提取时间序列驱动力的算法,例如parameters behind a chaotic signal

  • 神经网络(NN)方法,使用经常性NN(即构建为处理时间信号)或经典前馈NN,接收过去数据的输入部分,并尝试预测未来的一个点;后者的优点是,已知经常性的NN在考虑到遥远的过去时会遇到问题

在我看来,对于财务数据分析,重要的是不仅要获得时间序列的最佳推测推断,而且要获得可靠的置信区间,因为由此产生的投资策略可能会有很大不同。概率方法,如高斯过程,为您提供“免费”,因为它们返回可能的未来值的概率分布。使用经典统计方法,您必须依赖bootstrapping techniques

有许多Python库提供统计和机器学习工具,以下是我最熟悉的工具:

  • NumPySciPy是Python中科学编程的必备条件
  • R有一个Python接口,名为RPy
  • statsmodel包含经典统计模型技术,包括自回归模型;它适用于Pandas,一种流行的数据分析软件包
  • scikits.learnMDPMLPyOrange是机器学习算法的集合
  • PyMC一个python模块,用于实现贝叶斯统计模型和拟合算法,包括马尔可夫链蒙特卡罗。
  • PyBrain包含(其中包括)前馈和递归神经网络的实现
  • Gaussian Process site有一个GP软件列表,包括两个Python实现
  • mloss是开源机器学习软件的目录

答案 1 :(得分:5)

我不知道python库,但R中有很好的预测算法是开源的。有关时间序列预测的代码和参考,请参阅forecast包。

答案 2 :(得分:3)

仅谈及它们背后的算法,我最近在项目中使用了double exponential smoothing,并且当数据出现趋势时,通过预测新值表现良好。

实现非常简单,但是对于你的情况,算法可能还不够精确。

答案 3 :(得分:3)

您是否曾尝试Autocorrelation查找时间序列中的期刊模式? 您可以使用numpy.correlate函数执行此操作。

答案 4 :(得分:3)

两种方法

如何处理分类,回归,聚类,预测和相关任务的时间结构化输入有两种方法:

  1. 专用时间序列模型:机器学习算法直接包含这些时间序列。这样的模型就像一个黑盒子,很难解释模型的行为。示例是自回归模型。
  2. 基于特征的方法:此处将时间序列映射到另一个可能较低维度的表示。这意味着特征提取算法计算诸如时间序列的平均值或最大值之类的特征。然后将这些特征作为特征矩阵传递给“正常”机器学习,例如神经网络,随机森林或支持向量机。该方法具有更好的结果可解释性的优点。此外,它使我们能够使用完善的监督机器学习理论。
  3. tsfresh计算大量功能

    python包tsfresh从包含时间序列的pandas.DataFrame计算大量此类功能。您可以在http://tsfresh.readthedocs.io找到其文档。

    enter image description here

    免责声明:我是tsfresh的作者之一。

答案 5 :(得分:2)

Group method of data handling广泛用于预测财务数据。

答案 6 :(得分:1)

虽然它没有直接回答这个问题,但经过大量关于适合时间序列预测和顺序数据挖掘的图书搜索后,我遇到了这个研讨会页面http://sequenceanalysis.github.io/,其中有关于马尔可夫链拟合的有趣代码。我希望它也可以帮助其他人:)

答案 7 :(得分:0)

如果您想了解使用Python进行的时间序列预测,那么下面的链接将非常有帮助。

https://github.com/ManojKumarMaruthi/Time-Series-Forecasting