写点什么

周期性时间序列的预测

  • 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:443125

评论

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

Cilium 首次集成国内云服务,阿里云 ENI 被纳入新版本特性

阿里巴巴云原生

容器 云原生

JAVA语言基础(五)--数组

加百利

Java 后端 6月日更

项目管理100问 | 一个完整的缺陷管理流程是什么样的?

万事ONES

项目管理 研发管理 bug ONES

HarmonyOS学习路之开发篇——Service Ability

爱吃土豆丝的打工人

Server HarmonyOS 路由 Ability Server

OpenKruise :SidecarSet 助力 Mesh 容器热升级

阿里巴巴云原生

容器 云原生

Flink State 和 Fault Tolerance(二)

Alex🐒

flink 翻译 flink1.13

618技术特辑(三)直播带货王,“OMG买它”的背后,为什么是一连串技术挑战?

华为云开发者联盟

CDN 直播 618 低时延 视频直播

GraphQL 初探

wangwei1237

RESTful API graphql

【架构师训练营】电商业务微服务拆分设计

eoeoeo

物联网发展,行业新领域

anyRTC开发者

音视频 WebRTC 智能硬件 智能安防 实时通讯

bzz节点挖矿分发系统开发案例

薇電13242772558

区块链

中年程序员转行第1年的感悟|2021 年中总结

王磊

Java 编程 编程之路 编程故事

WorkPlus即时通讯-通讯录功能大全

BeeWorks

即时通讯 IM 移动开发 开源安全

标准物模型:设备无缝对接,IOT界的福音

华为云开发者联盟

物联网 IoT 物模型 标准物模型 IoT Stage

BoCloud博云获评2021云计算PaaS创新领导者

BoCloud博云

容器

如何有效地管理项目变更?

万事ONES

项目管理 研发管理 ONES

Python——嵌套

在即

6月日更

云图说|数据仓库服务 GaussDB(DWS) 的“千里眼、顺风耳”—数据库智能运维

华为云开发者联盟

数据库 数据仓库 GaussDB(DWS) 云图说 数据仓库服务

推理综艺的正确打开方式!爱奇艺玩转智能技术,“互动+内容”引爆迷综季

爱奇艺技术产品团队

架构之:数据流架构

程序那些事

架构 系统架构 软件架构 程序那些事

2021中国边缘计算企业20强榜单出炉,EMQ强势入围!

EMQ映云科技

开源 边缘计算 计算 emq

测试开发之网络篇-常用服务协议

禅道项目管理

IP HTTP 协议

Flink+Hologres助力伊的家电商平台建设新一代实时数仓

Apache Flink

flink

好的目标管理:SMART原则

石云升

创业 职场经验 管理经验 6月日更

一文读懂云原生 go-zero 微服务框架

晨雨听风

GitHub Web Go 语言

618技术特辑(四)疯狂剁手的同时,电商隐私安全你注意到了吗?

华为云开发者联盟

电商 数据安全 云安全 618 隐私安全

超全Redis命令总结,墙裂建议收藏,说不定就用上了呢

北游学Java

Java redis

再添新誉!浪潮云斩获年度领先品牌等多项殊荣

云计算

【Flutter 专题】101 何为 Flutter Elements ?

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 6月日更

恭喜埃文科技入选“2021年中国网安产业潜力之星”!

郑州埃文科技

EasyRecovery Pro绿色破解版,免序列号激活

淋雨

数据恢复 EasyRecovery 文件恢复 Easyrecovery破解 恢复软件

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