数智资源网
首页 首页 大数据 大数据入门 查看内容

以IT性能中的内存利用率数据为例,探讨时间序列相似度计算

木马童年 2020-10-18 14:33 19 0

实际工作环境中,有大部分的IT指标是规则的时间序列数据。如何通过IT性能数据发现机器运行模式,将同类型的机器进行归类,从而简化业务管理和方便业务拓展,是本文主要想解决的问题。本文以计算机性能指标(内存占用 ...

实际工作环境中,有大部分的IT指标是规则的时间序列数据。如何通过IT性能数据发现机器运行模式,将同类型的机器进行归类,从而简化业务管理和方便业务拓展,是本文主要想解决的问题。本文以计算机性能指标(内存占用率)为例,选用四种的相似度计算方法,对内存占用率数据的相似度进行计算比较,得出特征提取的相似度计算方法更为有效的结论,并提供了欧式距离加arima特征提取相结合的两步式分类解决方案。

根据以上的目的,本文主要分为四部分,第一部分简要介绍IT性能数据的特征;第二部分,详细阐述了四种时间序列相似度的计算方法。第三部分为内存占用率相似性的实证分析。第四部分作出结论。

在实际工作环境中,有许多IT指标是随着时间变化的,形成了很多等时间间隔的规则时间序列数据。同一个指标在不同的对象上的表现又不近相同,为了寻找相同表现的对象,我们往往需要衡量指标的相似度,这种相似度的计算是聚类、分类和同类推荐的基础。基于这种相似度将时间序列数据归类,使得同一个类里面的时间序列具有共性,从而能从业务角度发现问题。

一、IT性能数据的特征

IT性能数据大多数是随着时间变化的规则时间序列,不同于一般的横截面数据,时间序列数据的在不同时间点上收集到的数据,这类数据反映了某一事物、现象等随时间的变化状态或程度。由于时间序列数据随着时间变化的这个特性,使得其相似度的计算不能像横截面数据一样简单地进行点对点的相似度计算。同时,经过一定的观察验证,计算机性能数据一般时平稳的,无周期性的,有时会表现为毫无规律的白噪声数据。这使得其特征提取比较困难。IT性能数据包括CPU使用率、内存占用率、磁盘IO等一系列指标。其中内存占用率作为IT性能数据的一种指的是某个进程所开销的内存。某一程序占用内存过大,会影响机器的整体性能。不同性能的机器,运行不同的进程都会对内存占用率产生影响。它具有IT性能数据的一般特征。

二、时间序列相似度的几种计算方法

计算时间序列相似度的方法一般有欧式距离、曼哈顿距离、最大模、汉明距离、两个向量之间的角度(内积)以及动态时间规划(DTW)距离等。本文认为曼哈顿距离等其它距离计算方法与欧式距离原理相近,因此对于IT性能数据而言,本文选择的计算相似度的方法主要有欧氏距离、内积、ARMA模型和动态时间规划。

1.等长时间序列的欧氏距离(Euclid Distance)

欧氏距离也称欧几里得度量、欧几里得距离,是一个通常采用的距离定义,它是在m维空间中两个点之间的真实距离。一般而言,对于两个n维空间中的向量X和Y,它们之间的距离可以定义为两点之间的直线距离。欧式距离的计算公式如下:

  以IT性能中的内存利用率数据为例,探讨时间序列相似度计算

2.余弦相似性(内积)

余弦相似性是指通过测量两个向量内积空间的夹角的余弦值来度量它们之间的相似性。几何中夹角余弦可用来衡量两个向量方向的差异,机器学习中借用这一概念来衡量样本向量之间的差异。对于两个n维样本点

  以IT性能中的内存利用率数据为例,探讨时间序列相似度计算
  以IT性能中的内存利用率数据为例,探讨时间序列相似度计算

的夹角余弦公式:

  以IT性能中的内存利用率数据为例,探讨时间序列相似度计算

0度角的余弦值是1,而其他任何角度的余弦值都不大于1,并且其最小值是-1。从而两个向量之间的角度的余弦值确定两个向量是否大致指向相同的方向。两个向量有相同的指向时,余弦相似度的值为1;两个向量夹角为90°时,余弦相似度的值为0;两个向量指向完全相反的方向时,余弦相似度的值为-1。因此夹角余弦取值范围为[-1,1]。夹角余弦越大表示两个向量的夹角越小,夹角余弦越小表示两向量的夹角越大。在比较过程中,向量的规模大小不予考虑,仅仅考虑到向量的指向方向。余弦相似度通常用于两个向量的夹角小于90°之内,因此余弦相似度的绝对值为0到1之间。

3.ARIMA模型

这种方法首先使用ARIMA模型对时间序列数据进行拟合,用模型表示时间序列数据,并通过定义基于两个模型的距离公式进行相似性度量。一般地,ARIMA(p,d,q)的表达式为:

  以IT性能中的内存利用率数据为例,探讨时间序列相似度计算

其中,d表示d阶差分,p,q分别表示自回归(AR)和移动平均(MA)分量的最大阶数。在对两个变量X,Y分别拟合出ARIMA模型后,运用拟合后的参数计算两者之间的欧式距离。由于AR和MA可以相互转换,定义Π(B)为AR(∞)的算子,则将ARMA的转化为AR(∞)的形式,其算子可以表示为

  以IT性能中的内存利用率数据为例,探讨时间序列相似度计算

,由此定义两个模型的距离为:

  以IT性能中的内存利用率数据为例,探讨时间序列相似度计算

基于上述公式计算出两个ARIMA(1,0,1)模型的算子为:

  以IT性能中的内存利用率数据为例,探讨时间序列相似度计算
  以IT性能中的内存利用率数据为例,探讨时间序列相似度计算

这种方法相当于是用ARIMA模型先提取时间序列的特征,再根据其特征进行相似度计算,可以解决时间序列长度不一致的问题,简化距离计算的难度。

4.动态时间规划(Dynamic time wrapping ,DTW)

动态时间规划(Dynamic time wrapping ,DTW)是一套根基于动态规划(Dynamic Programming,DP)的方法,能够找出两个时间序列的最佳的对应关系,可以获得很高的识别和匹配精度,有效地将搜寻比对的时间大幅降低。尤其对时间序列在时间轴上的形状扭曲有非常优秀的辨识能力。

具体而言,在动态时间规划过程中,对于两个给定两个时间序列构造其最终距离,找到一条最佳的弯曲路径,使得累计距离最小。

DTW的目标就是要找出两个向量之间的最短距离。一般而言,假设这两个向量的元素位置都是代表时间,由于我们必須容忍在时间轴的偏差,因此我们並不知道两个向量的元素对应关系,因此我们必須靠着一套有效的运算方法,才可以找到最佳的对应关系。

以上四种方法各有利弊,传统的欧式距离与内积计算简便直观,易于理解,ARIMA模型也是基于欧式距离,但解决了DTW能够解决因向量的长度不同,导致欧式距离和内积无法计算的情况。

三、内存占用率相似性的实证分析

以下以12台不同机器的内存占用率数据memdat为例,计算IT性能时间序列数据的相似性,对上述四种方法的结果进行比较并探讨其对IT性能数据的适用性。需要说明的是,这12台机器配置相同,且相同类别的机器运行的进程相同。图1为其原始时间序列的形态。从业务环境,我们已知1、2属于同类型,3、4属于同类型,5单独一类,6-12属于同类型。图1给出了12台不同机器的内存占用率随时间变化的形态,从图中可以比较直观地看出,就算不同的机器运行的进程相同,其时间序列的表现也并不完全一样。图1去掉向上凸起的两个尖点后,其波动形态与图2类似,属于以某个轴为基准上下波动;3和4都属于一次波动之后回归零点,然后再开始另一次波动;5出现了断层;6至12也属于回归零点的波动,只是最后的大约五分之一的时段是微弱波动。

图1 12台不同机器的内存占用率随时间变化的形态

  以IT性能中的内存利用率数据为例,探讨时间序列相似度计算

以下我们根据第二部分介绍的四种方法运用R语言进行分析。

在R语言中可以直接用”stats”包中的dist函数计算欧式距离,dist函数计算数据矩阵的行之间的距离,并返回距离矩阵。代码如下:

eudist <- method="euclidean">

在R语言中没有直接计算夹角余弦值的函数,根据其定义编写简单的函数,并返回距离矩阵。代码如下:

  以IT性能中的内存利用率数据为例,探讨时间序列相似度计算

在R语言中”stats”包中包含arima函数,可以用来拟合ARIMA模型并得到相关参数,尝试用不同阶数对每个时间序列进行拟合,并最终得到最优模型。然后,根据其距离定义编写简单的函数,并返回距离矩阵。代码如下:

  以IT性能中的内存利用率数据为例,探讨时间序列相似度计算

在R语言中可以通过包”dtw”可以实现DTW算法。在包”dtw”中,函数dtw(x,y,...)计算动态时间规划并找出时间序列x与y之间最佳的对应关系。

  以IT性能中的内存利用率数据为例,探讨时间序列相似度计算

在得出四种方法的距离矩阵后,通过系统聚类将12个机器进行分类,验证这四种方法的效果,并作图说明。代码如下:

  以IT性能中的内存利用率数据为例,探讨时间序列相似度计算

图2所示为四种相似度度量方法得出的矩阵聚类之后的效果图。可以看出欧氏距离法和动态时间规划法能够较好地将6-12类、1-2类成功地进行分类,而ARIMA方法能够将3-4类明显地区分出来,夹角余弦值法可以将5类显著分离出来,但在其他类别相似度度量中似乎并不适用于IT性能时间序列数据。而且在进行计算的过程中,ARIMA方法需要选择最优模型,比较耗费时间,而且模型的p,q,d三个参数的选择直接影响之后的相似度计算结果,操作起来并不简便,但是,如果模型准确却可以挖掘数意想不到的信息。欧氏距离和动态时间规划法计算效率较高,其中欧式距离比动态时间规划法计算速度更快,对于时间序列相似度的衡量也比较准确。理论上来说,动态时间规划的效果应该优于欧式距离,但本文的分析结果却不尽然,可能是由于样本数据量(12台机器)过小,选取的数据指标比较片面(仅选用了内占使用率),或相似度效果对比选用方法不当(采用系统聚类)导致的。但这并不影响我们得出有效的结论。

  以IT性能中的内存利用率数据为例,探讨时间序列相似度计算

四、结论和后期研究方向

本文以计算机性能指标内存占用率为例,使用实际环境中的计算机性能数据(内存占用率),选用四种的相似度计算方法,对内存占用率数据的相似度进行计算,比较不同方法的相似度计算效果,探讨其对计算机性能数据的适用性,从以上的分析可以看出,本文所采用的四种方法中,通过特征提取的arima-euclidean metric方法在计算性能数据相似度时效果比较好,但效率较低,在实际使用中可以首先使用欧式距离或者动态时间规划对数据进行初步的聚类,再将上一步无法显著分类的数据使用特征提取的arima-euclidean metric方法对其余的数据进行分类,以此来提升分类效率。

从业务的角度来说,IT性能数据的相似度计算,首先能通过将同一类型的机器进行分类,从而简化业务管理,方便业务拓展;其次,通过和已知业务机器进行比较分类可以预测未知机器的业务进程,发现机器运行模式,方便进一步做客户细分。

本文的研究发现特征提取的方法对时间序列相似度的计算精确度有一定的提升,因此后期会继续研究基于时间序列特征提取的相似度计算,比如离散小波分析;并尝试不同的相似度效果比较方法,如两步聚类等。同时,由于计算机性能数据有多个指标,将机器进行综合分类需要多个维度的时间序列进行相似度计算,因此后期更需要关注多维

参考文献

A DISTANCE MEASURE FOR CLASSIFYING ARIMA MODELS,DOMENICO PICCLO

R and Data Mining: Examples and Case Studies

作者:原瑜芬,目前供职于某外企IT公司,主要关注IT运维数据的数据分析

度的时间序列数据相似度计算。

计算机 特征提取 解决方案 机器学习 计算速度 数据指标
0
为您推荐
北风网Spark大型项目实战138讲,资源教程下载

北风网Spark大型项目实战138讲,资源教程下载

课程名称北风网Spark大型项目实战138讲,资源教程下载课程目录001.课程介绍002.课程环…...

Hadoop&Spark企业应用实战,资源教程下载

Hadoop&Spark企业应用实战,资源教程下载

课程名称HadoopSpark企业应用实战,资源教程下载课程目录第一周:企业级Hadoop应用概…...

小象《金融数据分析》第二期,资源教程下载

小象《金融数据分析》第二期,资源教程下载

课程名称小象《金融数据分析》第二期,资源教程下载课程目录01 数据分析基本知识复习0…...

加强版吴超Hadoop七天培训视频完整版,Hadoop视频教程精华版下载

加强版吴超Hadoop七天培训视频完整版,Hadoop视频教程

课程名称加强版吴超Hadoop七天培训视频完整版,Hadoop视频教程精华版下载课程介绍云计…...

SWPU-ACM每周算法讲堂,资源教程下载

SWPU-ACM每周算法讲堂,资源教程下载

课程名称SWPU-ACM每周算法讲堂,资源教程下载课程目录1.动态规划入门2.搜索算法入门3.…...

2017最新某团购网站大型离线电商数据分析平台实战演练视频教程配套软件文档齐全138课 ...

2017最新某团购网站大型离线电商数据分析平台实战演练

课程名称2017最新某团购网站大型离线电商数据分析平台实战演练视频教程配套软件文档齐…...