- 时间序列预测/回归有哪些算法?
- 使用神经网络怎么样?(关于这个主题的最佳文档?)
- 是否有可以提供帮助的 python 库/代码片段?
7 回答
时间序列回归的经典方法是:
我知道的其他不太常见的方法是
神经网络 (NN) 方法,使用循环神经网络(即,用于处理时间信号)或经典前馈神经网络,接收过去数据的输入部分并尝试预测未来的某个点;后者的优点是已知循环神经网络在考虑遥远的过去方面存在问题
在我看来,对于财务数据分析,重要的是不仅要获得时间序列的最佳猜测外推,还要获得可靠的置信区间,因为由此产生的投资策略可能会因此而大不相同。概率方法,如高斯过程,“免费”为您提供,因为它们返回可能的未来值的概率分布。使用经典统计方法,您将不得不依赖自举技术。
有许多提供统计和机器学习工具的 Python 库,以下是我最熟悉的:
- NumPy和SciPy是 Python 科学编程的必备工具
- R 有一个 Python 接口,称为RPy
- statsmodel包含经典的统计模型技术,包括自回归模型;它与流行的数据分析包Pandas配合得很好
- scikits.learn、MDP、MLPy、Orange是机器学习算法的集合
- PyMC实现贝叶斯统计模型和拟合算法的 python 模块,包括马尔可夫链蒙特卡罗。
- PyBrain包含(除其他外)前馈和循环神经网络的实现
- 在Gaussian Process 站点有一个 GP 软件列表,包括两个 Python 实现
- mloss是一个开源机器学习软件的目录
我对 python 库一无所知,但是 R 中有很好的预测算法是开源的。有关时间序列预测的代码和参考,请参阅预测包。
两种方法
有两种方法可以处理分类、回归、聚类、预测和相关任务的时间结构化输入:
- 专用时间序列模型:机器学习算法直接结合了此类时间序列。这样的模型就像一个黑匣子,很难解释模型的行为。示例是自回归模型。
- 基于特征的方法:在这里,时间序列被映射到另一个可能更低维的表示。这意味着特征提取算法计算特征,例如时间序列的平均值或最大值。然后将这些特征作为特征矩阵传递给“正常”机器学习,例如神经网络、随机森林或支持向量机。这种方法的优点是可以更好地解释结果。此外,它使我们能够使用完善的监督机器学习理论。
tsfresh 计算大量特征
python 包tsfresh从包含时间序列的 pandas.DataFrame 计算大量此类特征。您可以在http://tsfresh.readthedocs.io找到它的文档。
免责声明:我是 tsfresh 的作者之一。
只谈它们背后的算法,我最近在一个项目中使用了双指数平滑,当数据有趋势时,它通过预测新值做得很好。
实现非常简单,但是对于您的情况,该算法可能没有充分阐述。
您是否尝试过自相关来查找时间序列中的周期性模式?您可以使用numpy.correlate函数来做到这一点。
数据处理的分组方法被广泛用于预测财务数据。
如果您想了解使用 Python 进行时间序列预测,那么下面的链接非常有帮助。
https://github.com/ManojKumarMaruthi/Time-Series-Forecasting