时间序列预测(最终使用Python)
时间序列预测或回归有哪些算法呢?
- 那使用神经网络怎么样?有没有关于这个主题的好资料?
- 有没有Python库或者代码片段可以帮助我们?
7 个回答
5
两种方法
处理时间结构化输入以进行分类、回归、聚类、预测等相关任务,有两种方式:
- 专用时间序列模型: 这种机器学习算法直接使用时间序列数据。这样的模型就像一个黑箱,可能很难解释它的行为。比如自回归模型就是一个例子。
- 基于特征的方法: 在这种方法中,时间序列会被转换成另一种可能维度更低的表示方式。这意味着特征提取算法会计算时间序列的一些特征,比如平均值或最大值。然后,这些特征会作为特征矩阵传递给“普通”的机器学习模型,比如神经网络、随机森林或支持向量机。这种方法的好处是结果更容易解释。此外,它还让我们能够使用成熟的监督学习理论。
tsfresh 计算大量特征
Python 包 tsfresh 可以从包含时间序列的 pandas.DataFrame 中计算出大量这样的特征。你可以在 http://tsfresh.readthedocs.io 找到它的文档。
免责声明:我是 tsfresh 的作者之一。
5
我对Python的库不太了解,不过在R语言里有一些很不错的开源预测算法。你可以看看这个forecast包,里面有关于时间序列预测的代码和参考资料。
73
传统的时间序列回归方法有:
我知道的其他不太常见的方法有:
神经网络(NN)方法,可以使用递归神经网络(即专门处理时间信号的网络)或经典的前馈神经网络,这种网络接收过去数据的一部分作为输入,尝试预测未来的某个点;后者的优点是递归神经网络在考虑远期数据时有困难
在我看来,对于金融数据分析,不仅要得到时间序列的最佳预测,还要有可靠的置信区间,因为最终的投资策略可能会因此有很大不同。像高斯过程这样的概率方法可以“免费”提供这种置信区间,因为它们会返回未来可能值的概率分布。而使用经典统计方法,你就得依赖自助法技术。
有很多Python库提供统计和机器学习工具,以下是我最熟悉的一些: