【问题标题】:Time series forecasting (eventually with python) [closed]时间序列预测(最终使用 python)[关闭]
【发布时间】:2011-04-04 18:53:21
【问题描述】:
  • 时间序列预测/回归有哪些算法?
    • 使用神经网络怎么样? (关于这个主题的最佳文档?)
    • 是否有 python 库/代码 sn-ps 可以提供帮助?

【问题讨论】:

  • 如果你能解释你的应用程序(你正在使用什么样的时间序列)会很有帮助,因为最好的方法是疯狂的函数。您的算法“存在”问题的答案是“很多”。
  • 我正在处理财务数据(外汇时间序列)
  • 我的最爱!最重要的是首先描述时间序列中的随机性;如果您发现它是随机的,那么任何确定性方法都只能靠运气。对于市场,您可能会在这里和那里发现非随机行为的阴影,并且会淡入淡出。因此,确定性方法的成功很大程度上取决于您的适应能力。

标签: python neural-network time-series


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    实现非常简单,但算法可能没有针对您的情况进行充分阐述。

    【讨论】:

      【解决方案3】:

      您是否尝试过Autocorrelation 来查找时间序列中的周期性模式? 你可以使用numpy.correlate 函数来做到这一点。

      【讨论】:

      【解决方案4】:

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

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

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

      • 神经网络 (NN) 方法,使用循环 NN(即,用于处理时间信号)或经典前馈 NN,接收过去数据的输入部分并尝试预测未来的某个点;后者的优点是已知循环神经网络在考虑遥远的过去方面存在问题

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

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

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

      【讨论】:

      • pandas 是比较活跃的项目:pandas.pydata.org
      • 是的,pandas 是一个处理数据序列的好项目,尤其是当日期很重要时。但是,据我所知,除了基本的统计工具之外,它不包含许多用于预测和回归的算法。参见例如pandas.pydata.org/pandas-docs/dev/computation.html
      • 谢谢!我一直在寻找有关如何为在嘈杂环境中运行的传感器(例如 IMU 或声纳)构建通用内部模型的想法,除了传统的噪声建模之外,这还提供了很好的想法。
      【解决方案5】:

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

      【讨论】:

        【解决方案6】:

        两种方法

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

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

        tsfresh 计算大量特征

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

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

        【讨论】:

        • 伙计们,如果我们有回归/多类标签,如何使用这个库?您的 test example (github.com/blue-yonder/tsfresh/blob/master/notebooks/…) 工作正常。但是,same example 但与 tiny changes 将无法正常工作 - content.screencast.com/users/SASH2012/folders/Jing/media/… 请告知。
        • 您使用的是随机目标。对于随机目标,没有任何特征是相关的。因此该算法将删除所有特征。
        • 我想说一些功能的统计测试价值非常小,但并不相关。如何添加基于 Boruta 的自定义 feature_selector?
        • 在您上面发布的屏幕截图中,您将目标向量 y 设置为随机变量。你能想到的每一个时间序列特征对于随机目标来说都是毫无价值的
        【解决方案7】:

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

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

        【讨论】:

          猜你喜欢
          • 2018-06-18
          • 1970-01-01
          • 2017-05-01
          • 2014-04-03
          • 2019-01-20
          • 1970-01-01
          • 1970-01-01
          • 2015-10-01
          • 1970-01-01
          相关资源
          最近更新 更多