算法金 | 时间序列预测真的需要深度学习模型吗?是的,我需要。不,你不需要?

news/2024/10/6 21:06:33/文章来源:https://www.cnblogs.com/suanfajin/p/18290914


大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」

参考 论文:https://arxiv.org/abs/2101.02118

更多内容,见微*公号往期文章:

审稿人:拜托,请把模型时间序列去趋势!!

使用 Python 快速上手 LSTM 模型预测时间序列

1. 时间序列预测的重要性

时间序列预测,这玩意儿在数据分析界可是个香饽饽,尤其在电力、交通、空气质量这些领域里,预测得准,资源分配更合理,还能让相关部门提前做好准备。但深度学习这小子横空出世,开始抢传统统计学方法的风头。那么问题来了,时间序列预测非得用深度学习吗?咱们今天就来掰扯掰扯。

2. 传统时间序列预测模型

2.1 滚动平均(Moving Average, MA)

滚动平均,这招简单粗暴,就是把一段时间的数据一平均,把那些随机的波动给抹平,让长期趋势露个脸。这招对付那些没啥花头的时间序列挺管用。

2.2 向量自回归(Vector Autoregression, VAR)

VAR模型,这货是个多面手,能把多个时间序列的过去值拿来预测未来,把变量间的相互勾搭给看个清楚。这在经济学和金融领域里头,预测经济指标的相互作用,玩得风生水起。

2.3 自回归综合移动平均(AutoRegressive Integrated Moving Average, ARIMA)

ARIMA模型,这家伙把自回归、差分、移动平均三招合一,专门对付时间序列里的趋势和季节性。得先把序列给整平稳了,这样预测起来才靠谱。这模型在经济预测、销售预测、气象预测这些领域里头,玩得挺溜。

传统时间序列预测模型优点不少:

  1. 理论基础扎实:这些模型都是统计学出身,数学表达式和参数估计方法都明明白白。
  2. 解释性强:模型参数都有个说法,分析起来容易。
  3. 计算效率高:计算起来简单,处理大数据也不费劲。

不过,这些老方法在处理复杂的非线性关系和多变量交互效应时,就显得有点力不从心了。数据量大了,复杂度高了,深度学习方法就有机会上位了。

\

3. 深度学习模型

3.1 长短期记忆网络(Long Short-Term Memory, LSTM)

LSTM,这货是递归神经网络的升级版,门控机制一加,梯度消失问题就解决了。这货记性好,长时间序列里的信息记得牢,预测起来自然给力。

3.2 基于注意力的双阶段RNN(Dual-stage Attention-based Recurrent Neural Network, DARNN)

DARNN,这货加上了注意力机制,能挑出时间序列里的重要特征,预测精度就上去了。先提取特征,再用注意力机制和解码器预测,这招在不少预测任务里都挺灵。

3.3 Deep Global Local Forecaster (DeepGlo)

DeepGlo,这货把时间序列分成全局趋势和局部细节,分别建模,最后合并预测结果。这样不同尺度的特征都能照顾到,预测的准确性自然就高了。

3.4 时空融合转化器(Temporal Fusion Transformer, TFT)

TFT,这货用多头注意力机制和序列到序列的结构,处理时间序列的复杂关系。短期长期依赖关系都能搞定,处理复杂时空特征的数据,表现杠杠的。

3.5 DeepAR

DeepAR,这货基于自回归思想,序列到序列的建模方式,用过去的时间序列数据预测未来。这货能处理大规模高维数据,预测时还能考虑多个时间序列的相互影响,精度自然不低。

深度学习模型虽然在时间序列预测上挺能打,但复杂度高,计算成本也高,对数据量和计算资源要求也不小。所以选模型的时候,得综合考虑应用场景、数据特点和计算资源,挑最合适的。

4. GBRT模型的对比研究

4.1 研究背景

深度学习虽然火,但传统的机器学习方法,比如梯度提升回归树(GBRT),在实际应用中也挺能打。GBRT通过多个弱学习器组合,提升预测性能。研究人员把GBRT和深度学习模型比了比,看看谁更牛。

4.2 研究方法

这项研究把时间序列预测任务变成了窗口回归问题,对GBRT模型进行了特征设计和结构调整。就是把时间序列数据分成固定长度的窗口,每个窗口的数据用来预测下一个时间点的值。所有模型都用同样的数据集和评估指标,公平比较。

4.3 研究数据集

研究用了多个公开的时间序列数据集,涵盖能源消耗、交通流量、空气质量等领域,数据时间跨度和频率各异,全面评估模型表现。

4.4 评估指标

评估模型预测性能,用了均方误差(MSE)、均绝对误差(MAE)和对称平均绝对百分比误差(sMAPE)这些常用指标,全面衡量预测误差和稳定性。

研究结果,GBRT在多个数据集上的表现超过了所有评估的深度神经网络(DNN)模型。这说明,在时间序列预测任务中,传统机器学习方法有时候还挺能打的。

5. GBRT模型的优势

5.1 解释性高

GBRT模型,就像个明白事理的老江湖,每个决策点都清清楚楚,让人一看就懂。跟那些深不可测的深度学习模型比起来,它更接地气,容易让人信服。

5.2 计算效率高

说到计算效率,GBRT模型就像是轻功了得的侠客,行动迅速,不拖泥带水。深度学习模型可能还在慢吞吞地翻山越岭,它已经一溜烟跑到了目的地。

5.3 特征工程能力强

GBRT模型在特征工程上,就像个手艺高超的铁匠,能将普通的铁块锻造成锋利的宝剑。通过巧妙设计特征,它能够捕捉数据中的关键信息,让预测更加精准。

5.4 灵活性高

GBRT模型的灵活性,就像个能屈能伸的武林高手,无论面对什么样的对手,都能随机应变,调整自己的策略。通过调整参数,它能够适应各种不同的数据集和预测任务。

虽然GBRT模型在时间序列预测中表现出色,但它的威力还是得靠精心的特征工程和细致的参数调整来发挥。在实际应用中,得像打磨宝剑一样,细心调校,才能让它发挥出最大的威力。

6. 特征工程与损失函数的重要性

6.1 特征工程

特征工程,就像是给武林高手挑选武器,选对了,战斗力倍增。在时间序列预测中,通过提取时间、滚动统计、滞后等特征,能让模型更加敏锐地捕捉数据的脉动。

6.2 损失函数

损失函数,就像是武林比武的规则,决定了比试的胜负。选择合适的损失函数,能让模型在训练中更加精准地找到自己的不足,从而不断进步。

通过实验,我们发现GBRT模型在特征工程和损失函数的选择上,展现出了极高的灵活性和适应性。就像武林高手在比武中不断调整自己的招式,GBRT模型也能通过精细的特征设计和合理的损失函数选择,显著提升自己的预测性能。

7. 模型架构的创新

7.1 架构创新的难点

模型架构的创新,就像是武林中的绝世武功,听起来很酷,但练起来却难如登天。新架构往往需要大量的实验和调优,而且复杂性可能会带来更高的计算成本和更长的训练时间。

7.2 成功的架构创新实例

尽管如此,还是有些架构创新,像是武林中的奇遇,让人眼前一亮。比如LSTM的门控机制,就像是突然领悟了一门高深的内功心法,让模型在处理长时间依赖关系时更加得心应手。

7.3 特征工程和损失函数的优先性

研究表明,当特征工程和损失函数设置得当,架构创新带来的提升其实有限。这就像是武林中的基本功,只有基本功扎实了,才能让后续的招式发挥出更大的威力。

7.4 创新带来的风险

模型架构的创新,也伴随着一定的风险。新架构的复杂性可能会导致训练过程中的不稳定性,增加过拟合的风险,同时还可能需要更多的数据和计算资源。在实践中,如何平衡创新带来的潜在收益和这些风险,是一个需要仔细权衡的问题。

8. 多输出预测的局限性

8.1 多输出预测的基本方法

在时间序列预测中,把预测器包装成支持多输出的MultiOutputRegressor,就像是一箭双雕,提高了预测效率,同时还能捕捉不同时间序列之间的相互依赖。

8.2 存在的局限性

但多输出预测也有它的局限性。由于所有输出都共享同一个模型结构和参数设置,这就像是用同一把钥匙开所有的锁,可能无法充分适应每个时间序列的独特性,导致预测精度下降。

8.3 改进建议

为了克服这些局限,可以考虑在模型中增加更强的约束,就像是给每个锁配上一把专属的钥匙。通过引入分层模型结构,在顶层捕捉不同时间序列的共同特征,在底层分别建模每个时间序列的特有特征。

8.4 实验验证

研究表明,通过引入这些改进措施,多输出预测模型在多个时间序列预测任务中取得了显著提升。这就像是武林中的高手,通过不断的修炼和创新,最终达到了新的境界。

9. 实验结果

9.1 单变量时间序列预测

在单变量时间序列预测任务中,GBRT模型就像是一匹黑马,无论是有协变量还是没有协变量,都展现出了优越的性能。特别是在没有协变量的情况下,通过合理的特征设计,GBRT模型能够有效捕捉时间序列中的趋势和波动,预测结果优于大多数深度学习模型。

9.2 多变量时间序列预测

在多变量时间序列预测任务中,GBRT模型与LSTNet、DeepAR、DeepState、TFT等深度学习模型相比,就像是武林中的一场较量,GBRT模型在大多数数据集上都取得了更高的预测精度。这主要归功于GBRT模型在特征工程和参数调整上的灵活性,使其能够更好地适应不同的数据特点和预测任务。

9.3 有协变量的预测

在有协变量的预测任务中,GBRT模型就像是得到了神助攻,通过合理利用协变量信息,能够进一步提升预测精度。例如,在能源消耗预测任务中,通过引入天气数据和历史用电量作为协变量,GBRT模型能够更准确地预测未来的能源需求。

9.4 结果分析

总体来看,实验结果验证了GBRT模型在时间序列预测中的竞争力。尽管深度学习模型在某些特定任务中表现出色,但GBRT模型通过合理的特征设计和参数调整,在大多数情况下能够取得更高的预测精度和稳定性。

[ 抱个拳,总个结 ]

  • 时间序列预测,在多个领域里头,传统方法和深度学习方法各有千秋。
  • 传统时间序列预测模型,像MA、VAR和ARIMA,理论基础扎实,计算效率高,但在处理复杂的非线性关系和多变量交互效应方面,就显得有点力不从心。
  • 深度学习模型,如LSTM、DARNN、DeepGlo、TFT和DeepAR,自动学习数据中的复杂模式和特征,在多个预测任务中展示出强大的性能。
  • GBRT模型,在实验中表现优越,尤其在适当配置的情况下,能够超过许多最先进的深度学习模型。
  • 特征工程和损失函数,在机器学习中至关重要,合理的特征设计和损失函数选择能够显著提升模型性能。
  • 模型架构的创新带来的提升有限,优先关注特征工程和损失函数的优化更为重要。
  • 多输出预测方法存在局限性,通过合理的改进措施可以提升其性能。
  • 实验结果显示,GBRT模型在单变量和多变量时间序列预测中均表现出色,特别是在有协变量的情况下,优势更加明显。

更多内容,见微*公号往期文章:

审稿人:拜托,请把模型时间序列去趋势!!

使用 Python 快速上手 LSTM 模型预测时间序列

- 科研为国分忧,创新与民造福 -

日更时间紧任务急,难免有疏漏之处,还请大侠海涵内容仅供学习交流之用,部分素材来自网络,侵联删

[ 算法金,碎碎念 ]

这两天不知道是哪位大侠的神力相助

这个点今天新增关注就破 500 了

订阅读者总数直指 20000 大关

简直不要太 6 了

全网同名,日更万日,让更多人享受智能乐趣

如果觉得内容有价值,烦请大侠多多 分享、在看、点赞,助力算法金又猛又持久、很黄很 BL 的日更下去;

同时邀请大侠 关注、星标 算法金,围观日更万日,助你功力大增、笑傲江湖

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/740858.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Pandas我这个填充nan值为什么填充不上呢?

大家好,我是Python进阶者。 一、前言 前几天在Python钻石交流群【逆光】问了一个Python数据处理的问题,问题如下:请问一下,我这个填充nan值为什么填充不上呢二、实现过程 这里【瑜亮老师】给了个思路如下:试试看这样,代码如下: sf_mergetotal.loc[sf_mergetotal[寄件人]…

python matplot绘图工具练习

matplot 数据可视化 seaborn# pyplot import matplotlib.pyplot as plt import numpy as np import seaborn as sns import pandas as pdx_point = np.array([0,6]) y_point = np.array([0,100]) plt.plot(x_point,y_point,b-.v) # 格式处理 plt.show()x = np.arange(0,4…

R语言用逻辑回归、决策树和随机森林对信贷数据集进行分类预测|附代码数据

原文链接:http://tecdat.cn/?p=17950 最近我们被客户要求撰写关于的研究报告,包括一些图形和统计输出。在本文中,我们使用了逻辑回归、决策树和随机森林模型来对信用数据集进行分类预测并比较了它们的性能数据集是 credit=read.csv("gecredit.csv", header = T…

代码随想录算法训练营第27天 | 122.买卖股票的最佳时机 II 55. 跳跃游戏 1005.K次取反后最大化的数组和

122.买卖股票的最佳时机 II 给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。 在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。 返回 你能获得的 最大 利润 。 解题: 思路:最…

R语言实现 Copula 算法建模相依性案例分析报告

原文链接:http://tecdat.cn/?p=6193 原文出处:拓端数据部落公众号copula是将多变量分布函数与其边缘分布函数耦合的函数,通常称为边缘。Copula是建模和模拟相关随机变量的绝佳工具。Copula的主要吸引力在于,通过使用它们,你可以分别对相关结构和边缘(即每个随机变量的分…

【视频讲解】Python、R时间卷积神经网络TCN与CNN、RNN预测时间序列3实例附代码数据

全文链接:https://tecdat.cn/?p=36944 原文出处:拓端数据部落公众号 本文旨在探讨时间卷积网络(Temporal Convolutional Network, TCN)与CNN、RNN在预测任务中的应用。通过引入TCN模型,我们尝试解决时间序列数据中的复杂依赖关系,以提高预测的准确性。本文首先介绍了TCN…

反转链表

目录L206 反转链表题目描述题解方法一:迭代方法二:递归L92 反转链表 II题目描述题解方法一:一遍扫描方法二:穿针引线L25 K个一组反转链表题目描述题解方法一:模拟 L206 反转链表 题目描述 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例1:示例2:题…

springboot 进程已结束,退出代码为 0

原文:https://blog.csdn.net/lvoelife/article/details/134129860 在pom.xml中,添加<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>然后用maven,重新加载项目…

G64【模板】线性基 贪心法 P3812 最大异或和

视频链接: P3812 【模板】线性基 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)// 线性基 O(63*n) #include <iostream> #include <cstring> #include <algorithm> using namespace std;typedef long long LL; int n; LL p[64];void insert(LL x){ //贪…

相机的标定

Camera-calibration 用于矫正相机的畸变代码部分 #打开摄像头,将读取的视频保存在本地,名字叫output.avi# coding=utf-8 import cv2 as cv cap = cv.VideoCapture(0) # 检查是否成功打开摄像头 if not cap.isOpened():print("Cannot open camera")exit() # 获取摄像…

关于golang函数传参问题

今天在写leetcode的一个简单问题的时候发现golang的切片传递并不是直接 传递地址的,而是一个地址副本。如图所示,当我利用test函数对nums1和nums2数组处理时,并不是对原来的nums1和nums2做处理,而是对他们的副本nums1_temp和nums2_temp做处理,但是nums1_temp和nums1都指向…

PN转Modbus RTU模块连接ACS4QQ变频器通信

巴图自动化PN转Modbus RTU模块(BT-MDPN10)的主要功能是实现Modbus协议和Profinet协议之间的转换和通信。PN转Modbus RTU模块集成了Modbus和Profinet两种协议,支持Modbus RTU主从站,可连接变频器、智能高低压电器、功率测量设备等RS485/232接口设备。一台完整的机器在出厂前由…