QCon北京|3天沉浸式学习,跳出信息茧房。 了解详情
写点什么

周期性时间序列的预测

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

评论

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

李开复、张亚勤、吴恩达…国际大咖给你讲解AI知识

博文视点Broadview

当当购书优惠码又可以限时抢啦(热卖新书等你来)

博文视点Broadview

Docker挂了,数据如何找回

运维研习社

Docker 运维 数据恢复 5月日更

毕业设计So Easy:基于Java语言西餐厅点餐系统

不脱发的程序猿

Java 开源 Java语言西餐厅点餐系统 毕业设计

网页端IM通信技术快速入门:短轮询、长轮询、SSE、WebSocket

JackJiang

websocket 消息推送 即时通讯 IM

阿里的互联网三高架构是真的牛!腾讯百度根本模仿不来

Java架构师迁哥

一颗CPU与病魔赛跑

E科讯

超详细的JQuery的 DOM操作,一篇就足够!

华为云开发者联盟

html 大前端 DOM 函数 JQuery框架

☕【JVM 技术之旅】带你重塑对类加载机制的认识

洛神灬殇

JVM Java虚拟机 类加载器 原理分析 5月日更

打破固有思维(十八)

Changing Lin

5月日更

iOS 面试策略之系统框架-设计模式

iOSer

ios 并发编程 tableView

软硬件融合新时代——让软件够灵活,硬件够高效,鱼和熊掌可兼得

博文视点Broadview

面试37次,16个offer上岸,总结了一些面试心得

北游学Java

面试 offer

做开发,这几种锁机制你不得不了解一下

华为云开发者联盟

读写锁 自旋锁 互斥锁 优先锁

Mybatis-Plus的应用场景及注入SQL原理分析

vivo互联网技术

源码分析 mybatis

ASP.NET Core整合Zipkin链路跟踪

yi念之间

云小课 | 华为云KYON之L2CG

华为云开发者联盟

虚拟私有云 华为云 大二层网络 KYON企业级云网络 L2CG

Java程序员想要拿到50W以上年薪,哪个技术是必备的?

Java架构师迁哥

联邦学习在视觉领域的应用,揭秘AI人工智能创新应用奖获奖案例

博文视点Broadview

如何快速构建嵌入式全栈知识体系?

博文视点Broadview

IDC数据中心介绍

大数据技术指南

数据中心 5月日更

树莓派上的 K8S 集群挂了,怎么办?

百度开发者中心

百度 技术 经验分享

深度分享|中小银行如何实现数字化转型,建设智能营销新体系?

索信达控股

大数据 数字化转型 金融 银行 营销数字化

强化学习落地:竞态场景下基于锁机制的闲置端口查用

行者AI

强化学习

Hive对分区分桶表的操作

五分钟学大数据

大数据 hive 5月日更

一种基于实时分位数计算的系统及方法

百度Geek说

云计算 大前端 云服务

架构是什么?空中楼阁?不切实际?

Java架构师迁哥

书单 | 职场办公类私藏好书,轻松Get职场必备技能

博文视点Broadview

云智慧发布《智能业务运维》2021年刊 邀您共览数字化运维全景象

云智慧AIOps社区

AIOPS 智能运维

dubbo的前世今生

捉虫大师

dubbo

麦肯锡最新报告 | 开发者速率成为企业增长助推剂

LigaAI

SaaS

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