写点什么

周期性时间序列的预测

  • 2019-11-21
  • 本文字数:1137 字

    阅读完需:约 4 分钟

周期性时间序列的预测

AIOps 从立项到现在已经半年有余,从最开始的 LVS 异常检测,到如今的实时关联分析,智能运维已经渗透到我们日常运维中的许多场景,之后我们会将积累的经验分享出来,供大家学习参考,本文最先发布于 OpsDev,转载已获取作者授权。


最近在研究时间序列的时候,发现很多序列具有很强的周期性,那如何对此类序列进行预测呢?

1 数据处理

挑选一个如下图的具有周期性的时间序列。该序列是取得是过去 7 天的数据,每小时一个点,一共 7*24 个点。


2 划分数据集

我们取前六天的数据做训练,第七天做测试集。

3 平滑处理

时间序列经常会出现毛刺的点,需要做平滑处理才能分析,类似上图中的数据。消除数据的毛刺,可以用移动平均法,但是移动平均有时候处理完后并不能使数据平滑,我这里采用的方法很简单,但效果还不错:把每个点与上一点的变化值作为一个新的序列,对这里边的异常值,也就是变化比较离谱的值剃掉,用前后数据的均值填充:



经过处理以后,上图的时间序列得到了平滑处理,效果如下图。


4 周期性分解

具有周期性特征的序列需要将周期性特征提取出来。python 里面的 statsmodels 工具包里面有针对周期性分解的函数 seasonal_decompose,我们可以将序列进行分解。seasonal_decompose 这个函数里面有个 two_sided 的参数,默认是 True。Trend 处理的时候用到移动平均的方法,熟悉此方法的读者就会发现,经过该方法处理以后,序列收尾两段有一部分数据缺失了,但是如果该参数为 FALSE,则只有开始的时候有一段缺失值。




图 3 中的第一张图是 observed,体现的原始数据;第二张是 trend,体现的是分解出来的趋势部分;第三张是 seasonal,体现的是周期部分;最后是 residual,体现的是残差部分。


本文采用的是 seasonal_decompose 的加法模型进行的分解,即 observed = trend + seasonal + residual,另还有乘法模型。在建模的时候,只针对 trend 部分学习和预测,如何将 trend 的预测结果加工成合理的最终结果?后面会有介绍。

5 预测

我们对 trend 部分进行预测,最后再加上 seasonal 部分。对 trend 的预测,我们采用 ARIMA 模型。熟悉该模型的都知道,需要确定三个参数 p,q 和 d,可以使用 aic 和 bic 的方法进行定阶,可以查阅相关的文献。



得到模型以后,就可以进行预测。



下面是预测的结果,从图中可以看到预测的结果将周期性的特征完美地体现出来了。


6 评估

对第七天作出预测,评估的指标为均方根误差 rmse,本序列的 rmse 小于 5,效果还是不错的。

7 总结

本文介绍了周期性序列的预测方法,你可能会问并不是所有的序列都具有周期性,事实确实如此,接下来几篇博客,我会重点介绍周期性检测的一些方法。希望此博客对您研究时间序列有所帮助。


本文转载自公众号 360 云计算(ID:hulktalk)。


原文链接:


https://mp.weixin.qq.com/s/yJEmY2ZFF0mVlRHmizO2Zg


2019-11-21 15:442726

评论

发布
暂无评论
发现更多内容

一站式系统清理维护工具MacBooster 8 Pro Mac中文版

Rose

苹果电脑系统优化 MacBooster 8 Pro 系统清理维护 MacBooster 破解版

API接口知识小结

Noah

1688商品评论数据接口实战指南:挖掘电商洞察

tbapi

1688商品评论接口 1688API 1688评论API

草图大师2023软件分享:SketchUp Pro 2023(Win&Mac) 中文特别版

你的猪会飞吗

SketchUp Pro 2023 草图大师2023下载 SketchUp Pro 2023下载 mac破解软件下载

如何在 KubeBlocks 中配置实例模板?

小猿姐

数据库 Kubernetes 云原生

Word 2021 LTSC for Mac永久破解版 含word激活工具 支持M1/M2

Rose

Word 2021 许可证 Word 2021破解版 Word 2021 mac

TON链上游戏项目开发基本要求及模式创建与海外宣发策略

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

深入浅出python代码混淆:原理与实践

我再BUG界嘎嘎乱杀

Python 编程 后端 开发语言 代码混淆

1688商品详情API返回值:商家数字化转型的助推器

技术冰糖葫芦

API Explorer API 接口 API 测试 API 策略

真去送了外卖的程序员,来聊聊他眼中的《逆行人生》丨编码人声

声网

泉州等保测评机构电话是多少?在哪里?

行云管家

等级保护 等保测评 泉州

基于“日志审计应用”的 DNS 日志洞察实践

阿里巴巴云原生

阿里云 云原生 sls

BFF层聚合查询服务异步改造及治理实践

京东科技开发者

锐起安全会议室方案:提升涉密会议效率与安全级别!

上海锐起科技

信息安全 文件管理 涉密会议

Serial for Mac v2.0.17激活版 全功能串行终端管理软件

Rose

探索国产系统运行小程序-统信UOS篇。

Geek_2305a8

R9 7940H和 R7 8845HS选哪个 锐龙R97940H和 R78845HS对比

妙龙

cpu

【京东保险-技术平台部-平台研发部】一群AI卖保险的程序员

京东科技开发者

MySQL主从同步如何保证数据一致性?

王磊

Java

深入浅出python的lambda表达式

我再BUG界嘎嘎乱杀

Python 编程 后端 开发语言 Lambda表达式

中文汉化版Bartender 5 mac下载 菜单栏图标管理软件

Rose

Bartender 5中文版 Bartender 5破解版 Mac菜单栏管理工具

币价与数据持续低迷,比特币和以太坊能否从低谷中恢复?

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

小程序技术为什么是轻量级前端架构?

Geek_2305a8

从原理聊JVM(一):染色标记和垃圾回收算法

京东科技开发者

一段鸿蒙旅程

草原上的奔跑

鸿蒙Next 纯血鸿蒙

通义灵码代码搜索功能的前沿性研究论文被软件工程国际顶会 FSE 录用

阿里云云效

阿里云 云原生 通义灵码

MacDroid Pro:Mac电脑和Android设备之间的文件传输和数据管理

Rose

数据传输 MacDroid pro 安卓手机数据传输助手

极简接入|七牛云 QPlayer2 播放器再升级

七牛云

音视频开发 播放器

如何将MySQL迁移到TiDB,完成无缝业务切换?

NineData

MySQL 迁移 TiDB 迁移复制 一键迁移

Uniswap丨justswap丨pancakeswap去中心化薄饼交易所系统开发指南

V\TG【ch3nguang】

去中心化的薄饼交易所开发

Bonree ONE 3.0:全域可观测 运维新境界

博睿数据

周期性时间序列的预测_文化 & 方法_OpsDev - 籍鑫璞_InfoQ精选文章