时间系列预测总结

转载自:https://mp.weixin.qq.com/s/B1eh4IcHTnEdv2y0l4MCog

拥有一种可靠的方法来预测和预测未来事件一直是人类的愿望。在数字时代,我们拥有丰富的信息,尤其是时间序列数据。
在这里插入图片描述
时间序列是指基于时间刻度维度(天、月、年等)采样和组织的任何数据。预测它将提供有价值的见解,帮助我们做出明智的决策并制定业务战略。时序数据示例包括:

金融市场:股票价格、汇率和交易量。

气候和天气:温度、降雨量和风速。

销售和需求预测:一段时间内的产品销售数据。

网站流量和用户行为:页面浏览量、点击率和转化率。

能源消耗:用电量和能源需求。

传感器数据:来自制造业、医疗保健和运输业传感器的测量值。

社交媒体活动:点赞、评论、分享和关注者数量。

这些示例展示了时间序列数据在业务数据分析的战略领域(如金融、天气、销售、在线分析、能源管理、传感器监控和社交媒体分析)中的多样性。掌握这些领域中每个领域的时间序列机器学习 (ML) 可以在事件预测和有效管理影响趋势、模式和其他波动的因素方面产生显着的好处。
在这里插入图片描述

在本文中,我们将踏上使用机器学习技术掌握时间序列分析和预测的旅程。

时序数据中的自动分析和预测:特点和挑战

随着机器学习预测的出现,我们现在拥有强大的工具来分析和发现时间序列数据中的模式。这使我们能够做出准确的预测和预测。让我们了解一下时间序列数据的组成:
在这里插入图片描述

趋势。在时间序列数据理论中,趋势是指值随时间变化的行为。它可以是正的(表示上升趋势)或负的(表示下降趋势)。

季节性。季节性是时间序列数据的一个特征,它以固定的时间间隔显示重复出现的模式。这些模式以恒定的频率重复。

残差。从数据中提取趋势和季节性分量后,剩余部分称为剩余部分或残差。这表示数据中不符合趋势或季节性模式的部分。对这个余数的分析有助于检测时间序列中的异常或意外波动。

周期。当时间序列显示没有固定周期或季节性的重复模式或波动时,它被称为周期性行为。与季节性不同,这些周期不遵循特定且可预测的频率。它们可能是由于外部因素或潜在模式而发生的,而这些因素或潜在模式不容易被趋势或季节性成分捕捉到。

平稳性。当时间序列的统计属性随时间变化保持不变时,它被认为是静止的。这意味着数据的均值、标准差和协方差不会随时间而变化。稳态时间序列更容易分析和建模,因为它们的行为保持一致。

与静态数据分析相比,时间序列数据分析遵循不同的框架。如上一节所述,对时间序列数据的分析首先要解决一些基本问题,例如:

数据是否呈现趋势?

数据中是否存在可识别的模式或季节性?

数据的特征是静止的还是非静止的?

时间序列分析中的关键问题包括识别趋势、模式/季节性和确定平稳性。在静态数据分析中,描述性分析、预测性分析和规范性分析等过程很常见。这些过程适用于时间序列和静态机器学习应用程序。但是,某些指标(例如相关性)在描述性、预测性和规范性框架中的使用方式不同。顺便说一句,这两种类型的数据都可以在自动化ML的帮助下进行处理。

时间序列数据的结构是独一无二的,对分析和预测提出了特定的挑战:

与静态数据不同,时间序列数据本质上是动态的,并且具有基于时间维度的固有顺序。

时间方面增加了复杂性,因为序列中的值取决于过去的观测值,并表现出趋势、季节性和不规则性。

在时间序列数据的上下文中,缺失值表现为时间序列中的间隙。这些差距表示数据观测缺失或不完整的时期。

如图所示,数据中可能存在明显的差距,这些差距无法通过通常用于静态数据的标准插补策略进行逻辑填充。这些差距在数据集中以明显的空白形式存在,对处理缺失值的传统方法提出了挑战。

为了有效地分析时间序列数据,了解其组成部分(如趋势和季节性)至关重要。此外,时间序列数据可能会表现出不规则的波动和噪声,需要在分析过程中加以考虑。

时间序列算法:优点和缺点

机器学习时间序列算法提供了强大的工具来释放时间序列数据的潜力。这些机制使时间序列分析和预测成为可能,每种机制都有其优点和局限性。了解这些有助于为手头的任务选择正确的算法。让我们探讨一些流行的算法及其优缺点:

ARIMA(自回归综合移动平均线)

ARIMA是一种功能强大的算法,广泛用于时间序列分析。它结合了三个主要组件:

自回归 (AR)

移动平均线 (MA)

时间序列差异。

自回归捕获观测值与一定数量的滞后观测值之间的线性关系。移动平均分量考虑过去预测误差的加权平均值。差分量通过取连续观测值之间的差值来帮助将非平稳数据转换为平稳数据。通过组合这些组件,ARIMA 可以有效地捕获时间序列数据中的趋势、季节性和噪声。

在这里插入图片描述
让我们考虑一个银行和金融数据预测的例子。要使用 ARIMA 模型预测公司的股价,首先要获取过去十年的公开股价数据。获得此数据后,可以继续训练 ARIMA 模型。为了确定 ARIMA 模型的适当参数,您需要分析数据中的趋势。这涉及选择使数据平稳所需的时间序列差分 (d) 的顺序。通过检查自相关和偏自相关,您可以确定模型的回归顺序 (p) 和移动平均线顺序 (q)。

要选择最拟合的模型,您可以使用各种性能指标,例如 Akaike 信息准则 (AIC)、贝叶斯信息准则 (BIC)、最大似然率和标准误差。这些指标有助于评估模型的拟合优度,并确保它捕获股票价格数据中的重要特征和模式。通过系统地分析数据并选择最佳参数,ARIMA模型可以提供有关公司股价的宝贵见解和预测。这种方法允许您利用历史趋势和模式在金融领域做出明智的决策和预测。

结论:ARIMA具有简单性和可解释性,适用于短期预测,适用于稳态数据。但是,它可能会遇到复杂的模式和长期依赖关系。

LSTM(长短期记忆)

LSTM 是一种递归神经网络 (RNN),擅长对序列和时间依赖性进行建模。与传统的前馈神经网络不同,LSTM网络具有独特的记忆单元结构,使它们能够在更长的时间段内保留和利用信息。这使得 LSTM 在捕获时间序列数据中的长期依赖关系方面特别有效。LSTM 模型可以学习数据中的复杂模式和关系,使其适用于以下领域的深度学习时间序列:

语音识别

自然语言处理

股市预测。

该网络能够选择性地忘记或记住信息,使其能够处理非平稳时间序列数据并捕获不同时间尺度的时间依赖关系。
在这里插入图片描述
结论:LSTM 在处理非线性模式和长期依赖关系时大放异彩。它从历史数据中学习的能力使其成为一个强大的选择。然而,它需要更多的计算资源和更大的数据集进行训练。

Prophet

Prophet 由 Facebook 开发,是一款专为时间序列预测而设计的强大算法。它利用加法模型来捕获非线性趋势、年度、每周和每日季节性以及假日效应。当应用于具有突出季节性模式和大量历史记录的时间序列数据时,它的表现非常出色。Prophet铂慧的显著优势之一是能够处理缺失数据并适应趋势的变化,同时在处理异常值方面也表现出鲁棒性。

事实证明,Prophet对于具有以下特征的数据集特别有价值:

涵盖跨越数月或数年的重大时间跨度,以每小时、每天或每周的频率捕获细粒度和详细的历史观测结果。

显示同时发生的多个突出的季节性模式。

纳入事先已知的重大不规则事件。

包含缺失的数据点或值得注意的异常值。

展示接近饱和点的非线性增长趋势。

增长函数用作捕获数据潜在趋势的模型。这个概念与那些具有基本数学知识的人通常知道的熟悉的线性和逻辑函数相一致。然而,Facebook Prophet引入了一个新概念,它允许增长趋势灵活地适应数据中的特定点,称为“变化点”。变化点表示数据中发生明显方向偏移的时刻。

这些点标志着增长模式发生变化的转变,使Prophet铂慧能够有效地捕捉和适应趋势随时间的变化。Prophet作为加法回归模型运行,包含分段线性或逻辑增长曲线趋势。它包含使用傅里叶级数建模的年度季节性分量和使用虚拟变量建模的每周季节性分量。通过利用这些功能,Prophet铂慧可以有效地捕捉上述数据集特征中固有的复杂性。

结论:Prophet专注于业务预测,能够有效地处理季节性和假日效应。但是,它可能无法捕获复杂的交互,并且可能需要仔细的特征工程。

时间序列预测的实用技巧

要利用时间序列机器学习的强大功能进行预测,有以下实用技巧:

  • 预处理数据
    清理数据、处理缺失值并解决异常值。如果需要,应用归一化或差分等技术来实现平稳性。

  • 时间序列特征工程
    提取有意义的特征,以捕获数据中的基础模式。考虑滞后变量、滚动统计量或傅里叶变换来捕捉季节性。

  • 选择合适的模型
    深入了解各种算法的功能和约束,并仔细选择最适合您独特时间序列的算法。在可解释性和复杂性之间取得平衡,以找到最佳解决方案。

  • 将训练和测试分开
    将数据划分为不同的训练集和测试集,确保测试集代表看不见的未来数据。通过评估模型在测试集上的预测来评估模型的性能。

  • 微调超参数
    通过网格搜索或贝叶斯优化等技术优化所选算法的超参数。此迭代过程通过查找最佳设置组合来帮助优化模型的性能。

  • 集成学习
    通过结合多个模型的预测来提高准确性并减少偏差。Ensembling 利用各个模型的优势来创建更强大、更可靠的预测解决方案。

时间序列预测的应用

  • 能耗预测
    时间序列深度学习模型可以预测能源消耗模式,使能源供应商能够根据预期天气、季节、人口变化等众多因素优化其供需管理、降低成本并提高可持续性。

  • 股票市场预测
    交易者和投资者可以利用深度学习时间序列算法的强大功能来分析复杂的股票市场数据,准确预测趋势,发现盈利交易的潜在机会,并有效管理风险。通过利用循环神经网络和长短期记忆模型等先进技术,这些算法可以捕获市场中复杂的模式和依赖关系,为做出明智的投资决策提供有价值的见解。

  • 零售业需求预测
    机器学习技术可用于分析历史销售数据并预测零售行业对各种产品的未来需求。这有助于零售商优化库存管理,确保产品可用性,并最大限度地减少积压或缺货,从而提高客户满意度和盈利能力。

不同场景中,数据建模基本上大同小异,如下简单示例使用LSTM进行预测时间序列:


import numpy as np  
from keras.models import Sequential  
from keras.layers import LSTM, Dense  
from sklearn.model_selection import train_test_split  
from sklearn.preprocessing import MinMaxScaler  # 假设你有一个名为 timeseries_data 的一维numpy数组,代表你的时间序列数据  
# timeseries_data = np.array(...)  # 预处理数据:标准化,并创建监督学习问题所需的输入和输出  
scaler = MinMaxScaler(feature_range=(0, 1))  
scaled_data = scaler.fit_transform(timeseries_data.reshape(-1, 1))  # 创建一个监督学习问题,即使用过去的数据点来预测下一个数据点  
def create_dataset(dataset, look_back=1):  X, Y = [], []  for i in range(len(dataset)-look_back-1):  a = dataset[i:(i+look_back), 0]  X.append(a)  Y.append(dataset[i + look_back, 0])  return np.array(X), np.array(Y)  look_back = 3  # 假设我们使用过去3个时间点来预测下一个点  
X, y = create_dataset(scaled_data, look_back)  # 将数据划分为训练集和测试集  
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)  # 重塑输入数据,以适应LSTM的输入要求:[samples, time steps, features]  
X_train = np.reshape(X_train, (X_train.shape[0], X_train.shape[1], 1))  
X_test = np.reshape(X_test, (X_test.shape[0], X_test.shape[1], 1))  # 构建LSTM模型  
model = Sequential()  
model.add(LSTM(4, input_shape=(look_back, 1)))  
model.add(Dense(1))  
model.compile(loss='mean_squared_error', optimizer='adam')  # 训练模型  
model.fit(X_train, y_train, epochs=100, batch_size=1, verbose=2)  # 预测  
train_predict = model.predict(X_train)  
test_predict = model.predict(X_test)  # 反标准化预测结果  
train_predict = scaler.inverse_transform(train_predict)  
y_train = scaler.inverse_transform([y_train])  
test_predict = scaler.inverse_transform(test_predict)  
y_test = scaler.inverse_transform([y_test])  # 评估模型  
train_score = np.sqrt(np.mean(((train_predict - y_train) ** 2))  
print('Train Score: %.2f RMSE' % (train_score))  
test_score = np.sqrt(np.mean(((test_predict - y_test) ** 2))  
print('Test Score: %.2f RMSE' % (test_score))

结论

机器学习解锁了时间序列数据中隐藏的宝石。了解独特的挑战并选择合适的算法可以实现准确的预测。通过仔细的数据预处理、特征工程、模型选择和性能评估,我们利用机器学习的力量来战胜时间序列问题。

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

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

相关文章

【THM】Protocols and Servers 2(协议和服务器 2

介绍 协议和服务器房间涵盖了许多协议: 远程登录HTTP协议文件传输协议邮件传输协议POP3IMAP实现这些协议的服务器会受到不同类型的攻击。仅举几例,请考虑: 嗅探攻击(网络数据包捕获)中间人 ( MITM ) 攻击密码攻击(身份验证攻击)漏洞从安全的角度来看,我们始终需要思考…

用API技术为数据安全“上保险”——双重保障

🔍API在数据安全领域的核心地位 随着数字化进程的狂飙突进,应用程序接口(API)已化身为企业内部、不同平台间以及用户交互的关键纽带。它们不仅是数据流动与共享的驱动引擎,更是守护数据安全的重要防线。其中&#xf…

端口敲击守护程序之DC-9

总结 getwebshell : 发现SQL注入 → 登录系统 → 疑似文件包含 → FUZZ参数 → 文件包含读取守护程序 → 敲击打开SSH端口 → 利用泄露账号密码登录 提 权 思 路 : 发现3个用户 → 登录获取密码字典 → 再次爆破获取第4个用户 → sudo文件发现 → 存在root权限写入功能 → pa…

共生共舞的期货黄金和现货黄金

期货黄金,作为一种在金融市场上备受关注的投资工具,其价值与价格走势深受现货黄金市场的直接影响和联动。期货黄金交易,本质上是投资者对未来某一特定时间内黄金价格的预期进行押注,而这背后的逻辑支撑和价格基准正是现货黄金市场…

2024通信技术与航空航天工程国际会议(ICCTAE2024)

2024通信技术与航空航天工程国际会议(ICCTAE2024) 会议简介 通信技术和航空航天领域有着密切的关联和深远的意义。 随着通信技术和航空航天工程的快速发展,这两个领域的交叉融合为学术界和工业界提供了广阔的研究空间和实际应用前景。为了进一步推动相关领域的发…

Ubuntu 20.04.06 PCL C++学习记录(二十)

[TOC]PCL中点云分割模块的学习 学习背景 参考书籍&#xff1a;《点云库PCL从入门到精通》以及官方代码PCL官方代码链接,&#xff0c;PCL版本为1.10.0&#xff0c;CMake版本为3.16 学习内容 基于颜色的区域增长细分 源代码及所用函数 源代码 #include<iostream> #i…

HIS系统是什么?一套前后端分离云HIS系统源码 接口技术RESTful API + WebSocket + WebService

HIS系统是什么&#xff1f;一套前后端分离云HIS系统源码 接口技术RESTful API WebSocket WebService 医院管理信息系统(全称为Hospital Information System)即HIS系统。 常规模版包括门诊管理、住院管理、药房管理、药库管理、院长查询、电子处方、物资管理、媒体管理等&…

Grafana告警(邮件)自定义模板配置

一年前给客户部署配置过grafana&#xff0c;告警配置也是用的原始的&#xff0c;客户在使用过程中只需要一些核心点信息&#xff0c;想要实现这个就需要用Grafana的自定义告警模板以及编辑邮件模板。 通知模板 模板信息的配置中查阅了相关资料&#xff0c;自己组装了一套&…

【IC前端虚拟项目】spyglass lint环境组织与lint清理

【IC前端虚拟项目】数据搬运指令处理模块前端实现虚拟项目说明-CSDN博客 和上个虚拟项目的lint清理环节一样&#xff0c;关于spyglass的lint清理功能与流程还是大家通过各种资料去学习下就好啦。和之前不同的事&#xff0c;这次的虚拟项目里我把流程封装为Makefile&#xff0c;…

三流大学毕业,物流专业转行自述:“从月薪4K到现在月入2W+,我做到了哪些?”

我是25岁转行学python的。说实在&#xff0c;转行就是奔着挣钱去的。希望我的经历可以给想转行的朋友带来一点启发和借鉴。 先简单介绍下个人背景&#xff0c;三流大学毕业&#xff0c;物流专业&#xff0c;学习能力一般&#xff0c;没啥特别技能&#xff0c;反正就很普通的一…

C++ //练习 11.23 11.2.1节练习(第378页)中的map以孩子的姓为关键字,保存他们的名的vector,用multimap重写此map。

C Primer&#xff08;第5版&#xff09; 练习 11.23 练习 11.23 11.2.1节练习&#xff08;第378页&#xff09;中的map以孩子的姓为关键字&#xff0c;保存他们的名的vector&#xff0c;用multimap重写此map。 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09;…

flutter 获取验证码倒计时组件封装

send_sms_btn.dart import dart:async;import package:flutter/material.dart; import package:get/get.dart;// 发送验证码 按钮 class SendSmsBtn extends StatefulWidget {final Future<bool> Function()? onTap;const SendSmsBtn({super.key,this.onTap,});overrid…

CS162 Operating System笔记

What is an Operating System? it’s typically a special layer of software that provides the application access to hardware resources.So.it’s convenient abs fractions of complex hardware devices.

FHE全同态加密简介

1. 何为FHE&#xff1f; FHE (Fully homomorphic encryption)&#xff1a; 是一种隐私技术&#xff0c;支持直接对密文进行计算&#xff0c;而无需对密文先解密再计算。即&#xff0c;任何第三方或云厂商&#xff0c;都可对敏感信息的密文进行处理&#xff0c;而无需访问密文内…

快速安装/升级/卸载Ascend配套软件包的

一、参考资料 配套MindSpore 昇腾软件安装指引&#xff08;23.0.RC3&#xff09; 快速安装CANN 二、安装Ascend配套软件包 1. Ascend配套软件包简介 Ascend配套软件包&#xff0c;包括&#xff1a;固件、驱动和CANN&#xff08;Compute Architecture for Neural Networks&…

近距离共享数字化实战经验,深挖数据价值赋能千行百业

近期&#xff0c;思迈特软件积极投身于金融、制造、零售、医疗等多个行业的线下活动中&#xff0c;深度解析行业趋势&#xff0c;分享BI数字化创新解决方案&#xff0c;并与客户及合作伙伴进行深入交流。通过这些活动&#xff0c;不仅展示了思迈特软件在各领域的先进技术和成果…

【数据结构】双向链表 C++

一、什么是双向链表 1、定义 双向链表也叫双链表&#xff0c;是链表的一种&#xff0c;它的每个数据结点中都有两个指针&#xff0c;分别指向直接后继和直接前驱。所以&#xff0c;从双向链表中的任意一个结点开始&#xff0c;都可以很方便地访问它的前驱结点和后继结点。 双…

fakebook-攻防世界

题目 先目录扫描一下 dirseach 打开flag.php是空白的 访问robots.txt,访问user.php.bak <?php class UserInfo { public $name ""; public $age 0; public $blog ""; public function __construct($name, $age, $blog) { …

2024年【道路运输企业主要负责人】报名考试及道路运输企业主要负责人证考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 道路运输企业主要负责人报名考试根据新道路运输企业主要负责人考试大纲要求&#xff0c;安全生产模拟考试一点通将道路运输企业主要负责人模拟考试试题进行汇编&#xff0c;组成一套道路运输企业主要负责人全真模拟考…

vue vue3 日期时间组件分装,三种不同的效果

写在前面&#xff1a; 基于elementPlus前端组件库&#xff0c;实现了两种日期时间组件的自定义封装&#xff1a; 1.第一种&#xff0c;年月日 2.第二种&#xff0c;年月周日 3.第三种&#xff0c;年月日 一、年月日自定义组件的封装 实现效果&#xff1a; 参考链接&#xff1a…