时间序列聚类方法的研究

2019 年 11 月 21 日

时间序列聚类方法的研究

为了保证系统、服务的可靠性和稳定性,监控系统日渐成为每个公司、企业的一个必不可少的系统。随着服务、机器等数量越来越多,如何分析海量时间序列 KPI 成为我们在智能运维领域首先需要解决的问题。


在众多的时间序列中,有一些序列存在相关性,如果我们能将时序数据进行快速准确地聚类,只对不同类别的数据进行分析,这样就能大大降低后续数据分析与挖掘工作的开销。


背景


由于时间序列的维度一般都比较高,高则上千维、上万维,所以在聚类之前,我们需要使用合理的方法去降低时间序列的维度。时间序列的随机扰动和噪声比较多,如何分析序列的相似度变得相当困难。许多聚类算法,如 k-means 的效果和参数的选取有密切关系。面对大规模的时序数据,难以人工选取合适的参数,因此我们需要设计更智能的参数选择方法。


本文提出一种基于 PCA 降维的聚类方法,能够很好地解决上面的问题。


方法研究


该章节一共分为两部分:降维和聚类,接下来我们将详细介绍。


1 降维


大规模的时序数据集中通常含有数以万计的时序数据实例,每个实例上含有大量的数据点,直接对整个数据集进行聚类将带来巨大的计算开销。因此,本文通过随机采样和维度缩减的手段降低需要考察的实例数目和维度,将采样后的数据集作为聚类模块的输入,降低计算开销。


下面介绍降维的方法。PCA 是选择特征,降低特征维度比较常用的方法。python 中有现成的算法包,可以将维度降低到自己指定的维度上来。


from sklearn.decomposition import PCA#维度d=** pca=PCA(n_components=d) newdata = pca.fit_transform(data)
复制代码


PCA 原理就不说明,百度上有一大堆。通过上面的方法就可以将维度降低到自己想要的维度上来。


除了 PCA 可以实现降维,微软提出了随机分段平均也可以实现时间序列降维的方法,具体详见参考文章一。


2 聚类


时序数据中的数据曲线模式多种多样,每个类别中含有的曲线数量也有较大差异。面对这种情况,基于密度的聚类方法是一种很好的选择。基于密度的聚类算法正是根据这一思想将相似曲线逐步加入同一聚类簇中,从而能够找出任意形状的聚类簇。特别地,真实的时序数据模式较为复杂,在一个数据集中可能存在多种密度的聚类簇。因此本文中将基于密度的 DBSCAN 算法改提升聚类准确性。


y_pred = DBSCAN().fit_predict(data)
复制代码


效果展示


我们对一个机器的五个监控项进行分析,这五个监控项分别为:‘cpu.idle’, ‘load.1min’, ‘mem.memused.percent’, ‘df.statistics.used.percent’, ‘agent.alive’,他们的时序图如下:



对这五个监控项进行 PCA 降维,从 1440 维降到 3 维:



可以看到通过降维以后,有两个点在相近的区域内,我们通过 DBSCAN 聚类后,效果如下:



结果符合我们的预期。


3 总结


本文介绍了一种时间序列聚类的方法,当然还有很多类似的算法去实现,需要不断尝试,找到符合自己场景的组合算法。


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


原文链接:


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


2019 年 11 月 21 日 23:46358

评论

发布
暂无评论
  • 基于距离的学习:聚类与度量学习

    聚类分析实际上是一种分组方式,距离在聚类中发挥着重要作用。今天我就以k均值算法为例,和你聊聊基于距离的学习方法。

    2018 年 7 月 19 日

  • 归一化和标准化:各种特征如何综合才是最合理的?

    为什么有时候需要转换特征值?如何使用归一化进行特征值转换?如何使用标准化进行转换?

    2019 年 2 月 20 日

  • 四种类型的数据分析模式

    我们聚焦于在数据科学领域所遇到的四种类型的数据分析模式:描述型、诊断型、预测型和指导型。

  • 19 丨决策树(下):泰坦尼克乘客生存预测

    决策树分类的应用场景非常广泛,今天我来带你用决策树进行项目的实战。

    2019 年 1 月 25 日

  • AIOps 在携程的探索与实践

    本文转载自公众号携程技术(ID:ctriptech)。

  • 虚拟座谈会:聊聊 AIOps 的终极价值

    从历史发展的角度来看,这些年,运维平台大致经历了流程化->工具化->Web化->自动化的演进历程。随着运维管理复杂度的提升,以及企业自动化运维体系的成熟,运维平台必定会向智能化靠拢。而从结果来看,智能化才是运维平台的最终目标。正如InfoQ的另外一篇文章所言,在这个数字化转型的年代,任何使用传统技术来管理机器数据的企业要么是忽略了信息的价值,要么已经让他们的运维团队不堪重负。随着数据的暴涨,运维团队应该快速拥抱AIOps。传统AI仍然会在某些领域发挥它的作用,而AIOps将为企业带来最直接最深远的价值。

  • 基于 AFK-MC²算法的 k-Means 聚类加速算法

    Olivier Bachem等人在其NIPS 2016(Neural Information Processing Systems,神经信息处理系统大会,机器学习领域的顶级会议之一)的文章“Fast and Probably Good Seedings for k-Means”中提出了AFK-MC²算法,该算法改进了k-Means算法中初始种子点的生成方式,使其聚类速度相较于目前最好的k-Means++方式提高了好几个数量级。

  • AI 时代,我们离 AIOps 还有多远?

    按照 Gartner 的定义,AIOps 是 Algorithmic IT Operations,但是在人工智能时代,可能很多的人会把 AI 理解成 Artificial Intelligence,不去纠结定义,我觉得本质上,想要表达的意思是一样的,就是让运维具备机器学习和算法的能力。

  • 随机近似推断:MCMC

    用样本分布来代替难以求解的后验分布,这就是随机性近似的思想。随机性近似的典型方法是马尔可夫链蒙特卡洛方法,简称MCMC。

    2018 年 8 月 30 日

  • 视频结构化技术在苏宁的应用

    假设你是一个科比布莱恩特的粉丝突然想回顾科比退役前最后一场比赛的所有精彩防守片段,你肯定不会想再花2个小时连同中场休息的广告一起把比赛视频再看一遍。

  • 26 深度学习 | 空竹里的秘密:自编码器

    自编码器是一类执行无监督学习任务的神经网络结构。今天我们就来聊聊这个有着“空竹网络”雅号的自编码器。

    2018 年 2 月 6 日

  • 数据科学家基础能力之概率统计

    概率统计知识正在人工智能中发挥着越来越重要的作用。

    2017 年 10 月 10 日

  • 异常检测:百度是这样做的

    主要介绍百度运维部IOP团队开发的自动异常检测系统及其核心技术能力,并重点讨论了大规模时序异常检测参数配置成本高的问题。

  • 从算法到项目应用,如何真正落地机器学习

    机器学习有很多算法,学术上的分类都是公认的。TalkingData内部更多的是看一个算法或者算法的实现是适合处理大数据还是小数据,会根据这个标准分成两类。 我们既要处理互联网公司的超大规模数据,又要支持很多小规模数据的客户需求,所以我们的情况比较复杂。大规模数据处理的算法栈基于Spark,我们做了大量基于Spark的算法创新和优化;小规模数据的处理主要是一些具体客户项目,在于对一些乙方数据的挖掘,因为数据处理中遇到的技术问题不是特别大,所以主要使用基于Python、R的算法库。

  • 无痛的增强学习入门:差分时序法

    《无痛的增强学习入门》系列文章旨在为大家介绍增强学习相关的入门知识,为大家后续的深入学习打下基础。其中包括增强学习的基本思想,MDP框架,几种基本的学习算法介绍,以及一些简单的实际案例。 作为机器学习中十分重要的一支,增强学习在这些年取得了十分令人惊喜的成绩,这也使得越来越多的人加入到学习增强学习的队伍当中。增强学习的知识和内容与经典监督学习、非监督学习相比并不容易,而且可解释的小例子比较少,本系列将向各位读者简单介绍其中的基本知识,并以一个小例子贯穿其中。

  • 分布式锁🔒是个啥❓ 其实就这么点事

    聊聊分布式锁,本文将以redis 为实现方式,包括redLock算法,Redisson

    2020 年 5 月 30 日

发现更多内容

一致性哈希实现

elfkingw

极客大学架构师训练营

【获奖名单公示】仅需发布3篇+文章,极客时间每日一课 VIP 等多重礼品,免费拿~

InfoQ写作平台

写作平台 征稿 活动专区

技术选型:如何构建技术选型方法论

NORTH

极客大学架构师训练营 技术选型

架构师训练营 - 第⑤周总结

牛牛

学习 极客大学架构师训练营

Istio 升级新方式:金丝雀升级

郭旭东

Kubernetes 云原生 istio

缓存技术和直播平台缓存总结

周冬辉

作业一:一致性hash实现

ruettiger

架构师训练营第五周学习总结

whiter

极客大学架构师训练营

Week 05 总结

鱼_XueTr

缓存 分布式数据库 消息队列

RxJS学习总结

shinji

RXJS

架构师训练营第5周总结:缓存,消息队列,负载均衡,分布式数据库

hifly

负载均衡 缓存 分布式数据库 极客大学架构师训练营 消息队列

架构师训练营第五周总结

架构师 极客大学架构师训练营

一致性hash算法java代码实现

Thrine

第五周作业总结

Thrine

消息队列与异步架构

Lane

极客大学架构师训练营

分布式事务精华总结篇

古月木易

分布式 分布式事务

一致性Hash

行下一首歌

极客大学架构师训练营

单体架构知识点及单体架构的缺陷

古月木易

单体架构

单体架构知识点及单体架构的缺陷

奈学教育

单体架构

架构0期Week5Work1

Nan Jiang

实现一致性 hash 算法

戴维斯

极客大学架构师训练营

架构师训练营第五周总结

王鑫龙

极客大学架构师训练营

分布式事务精华总结篇

奈学教育

分布式 分布式事务

Lesson 5 分布式系统架构- 分布式缓存和队列 心得笔记

edd

半小时,将你的Spark SQL模型变为在线服务

范式AI云

Python spark Sparksql Apache Spark 数据模型

啃碎并发(六):Java线程同步与实现

猿灯塔

第五周作业 - 一致性 hash 实现

netbanner

极客大学架构师训练营

大型网站技术架构--架构篇

wei

十代酷睿凌云!开启游戏本新篇章的机械师“战空”F117-V

飞天鱼2017

架构师训练营」第 5 周作业

edd

极客大学架构师训练营

致那些高考结束的同学们

小天同学

读书 读书感悟 高考

时间序列聚类方法的研究-InfoQ