1.摘要
在大数据与人工智能领域,时间序列预测是至关重要的研究方向之一。它涉及从历史数据中捕捉模式并预测未来的趋势,广泛应用于金融分析、天气预报、疾病传播预测、电力需求管理等领域。
时间序列预测的核心在于建立能够理解数据随时间变化规律的模型,这些模型需要能够处理序列中的依赖关系,从而做出准确的预测。本文的主要目的是通过一些具体事例,深入嵌入的讲解基于机器学习算法的时间序列预测任务,主要适用于多输入单输出(MISO)和多输入多输出(MIMO)任务。
本文涉及到的算法主要分为四类网络结构,分别为循环递归结构、卷积神经网络结构、Transformer结构以及混合结构(也就是我们经常说到的魔改神经网络),并通过一个具体事例,根据数据、代码和结果来一步步的去对算法进行分析。
2. 任务
在造船领域,对二手船的价格预测是一个较为重要的任务。其价格受到多重因素的影响,本文共列举了其中的11种因素:62%品位铁矿石期货价格、铜期货价格、锡期货价格、大豆期货价格、小麦期货价格、玉米期货价格、木材期货价格、WTI原油期货价格、美元指数、汇率Yuan/$、标准普尔500指数等,数据集如下图表格所示,共2011年一直收集到2023年,每隔一周收集一次数据:
本文的任务是,利用已知的11种因素,预测一周/一月之后的二手船价格。
本文的重点在于对时间序列进行建模预测,如对特征选取感兴趣的同学可以参考我的另外一篇博客:特征选择方法概述互信息(MIC)、距离相关系数(DCOR)、随机森林贡献度等
3.相关算法介绍
3.1 循环递归网络结构
一提到时间序列预测,首当其冲的就是循环递归结构,包括RNN、LSTM、GRU等网络结构,本文对这些结构的原理进行一一介绍,并给出自己的一些思考。
3.1.1 RNN
参考论文:Elman J L. Finding structure in time[J]. Cognitive science, 1990, 14(2): 179-211.,谷歌被引次数超16000!
说到循环递归结构就不得不提到其鼻祖RNN网络。首先我们先对RNN有个初步的概念:想象一下,你正在阅读一本非常吸引人的小说。每次你翻开新的一页,你的大脑不仅会处理这一页上的内容,还会结合之前读过的所有内容来理解故事的情节、人物关系和背景设定。这就是一种“记忆”和“上下文理解”的过程,因为你大脑中的信息不是孤立的,而是连续且相互关联的。RNN就是模仿了这种“记忆”功能的神经网络。在传统的神经网络中,假设每个输入都是独立的,没有前后联系。但RNN不同,它专门设计用来处理序列数据——也就是那些按顺序排列,其中每个元素都与前后的元素有关联的数据,比如时间序列数据(股价、温度变化)、自然语言(句子、对话)等。在RNN中,有一个特殊的循环连接,让信息能够从前一个时间点传递到下一个时间点。就像你在读书时,上一页的信息会影响你对下一页的理解。RNN的这个特性让它能够记住前面的信息,这样当处理后续数据时,它就能够利用这些记忆来做出更好的决策或预测。有了一个初步概念之后,我们现在来具体的讲一讲RNN到底是什么以及其是怎么运行的。
- 这次先写到这,由于内容太多了,明天再继续更新,如果感兴趣可以先点个关注,后面会有非常详细且全面的讲解,并会使用pytorch搭建这些网络并运行结果做对比。