Processing math: 42%
  • 中国精品科技期刊
  • CCF推荐A类中文期刊
  • 计算领域高质量科技期刊T1类
高级检索

基于自适应k近邻的时间序列异常模式识别

王玲, 周南, 申鹏

王玲, 周南, 申鹏. 基于自适应k近邻的时间序列异常模式识别[J]. 计算机研究与发展, 2023, 60(1): 125-139. DOI: 10.7544/issn1000-1239.202111062
引用本文: 王玲, 周南, 申鹏. 基于自适应k近邻的时间序列异常模式识别[J]. 计算机研究与发展, 2023, 60(1): 125-139. DOI: 10.7544/issn1000-1239.202111062
Wang Ling, Zhou Nan, Shen Peng. Time Series Anomaly Pattern Recognition Based on Adaptive k Nearest Neighbor[J]. Journal of Computer Research and Development, 2023, 60(1): 125-139. DOI: 10.7544/issn1000-1239.202111062
Citation: Wang Ling, Zhou Nan, Shen Peng. Time Series Anomaly Pattern Recognition Based on Adaptive k Nearest Neighbor[J]. Journal of Computer Research and Development, 2023, 60(1): 125-139. DOI: 10.7544/issn1000-1239.202111062
王玲, 周南, 申鹏. 基于自适应k近邻的时间序列异常模式识别[J]. 计算机研究与发展, 2023, 60(1): 125-139. CSTR: 32373.14.issn1000-1239.202111062
引用本文: 王玲, 周南, 申鹏. 基于自适应k近邻的时间序列异常模式识别[J]. 计算机研究与发展, 2023, 60(1): 125-139. CSTR: 32373.14.issn1000-1239.202111062
Wang Ling, Zhou Nan, Shen Peng. Time Series Anomaly Pattern Recognition Based on Adaptive k Nearest Neighbor[J]. Journal of Computer Research and Development, 2023, 60(1): 125-139. CSTR: 32373.14.issn1000-1239.202111062
Citation: Wang Ling, Zhou Nan, Shen Peng. Time Series Anomaly Pattern Recognition Based on Adaptive k Nearest Neighbor[J]. Journal of Computer Research and Development, 2023, 60(1): 125-139. CSTR: 32373.14.issn1000-1239.202111062

基于自适应k近邻的时间序列异常模式识别

基金项目: 国家自然科学基金项目(62076025, 61572073)
详细信息
    作者简介:

    王玲: 1974年生.博士,教授.主要研究方向为数据挖掘和机器学习

    周南: 1997年生.硕士.主要研究方向为数据挖掘

    申鹏: 2000年生.硕士研究生.主要研究方向为数据挖掘

  • 中图分类号: TP391

Time Series Anomaly Pattern Recognition Based on Adaptive k Nearest Neighbor

Funds: This work was supported by the National Natural Science Foundation of China (62076025, 61572073).
  • 摘要:

    时间序列作为数据的典型代表,被广泛应用于许多研究领域. 时间序列异常模式代表了一种特殊情况的出现,在许多领域都具有重要意义. 现有的时间序列异常模式识别算法大多只是单纯检测异常子序列,忽略了异常子序列的类别区分问题,且许多参数都需要人为设置.为此提出了一种基于自适应k近邻的异常模式识别算法(anomaly pattern recognition algorithm based on adaptive k nearest neighbor, APAKN). 首先,确定各子序列的自适应k近邻值,引入自适应距离比计算子序列的相对密度,确定异常分数;然后提出一种基于最小方差的自适应阈值方法确定异常阈值,检测出所有异常子序列;最后,对异常子序列进行聚类,所得聚类中心即为具有不同变化趋势的异常模式. 整个算法过程在无需设置任何参数的情况下,不仅解决了密度不平衡问题,还精简了传统基于密度异常子序列检测算法的步骤,实现良好的异常模式识别效果. 在时间序列数据集合UCR的10个数据集上的实验结果表明, 提出算法在无需设置参数的情况下,在异常子序列检测和异常子序列聚类问题中都表现良好.

    Abstract:

    As a typical representative of data, time series is widely used in many research fields. The time series anomaly pattern represents the emergence of a special situation, and is of great significance in many fields. Most of the existing time series anomaly pattern recognition algorithms simply detect anomaly subsequences, ignoring the problem of distinguishing the types of anomaly subsequences, and many parameters need to be set manually. In this paper, an anomaly pattern recognition algorithm based on adaptive k nearest neighbor(APAKN) is proposed. Firstly, the adaptive neighbor value k of each subsequence is determined, and an adaptive distance ratio is introduced to calculate the relative density of the subsequence to determine the anomaly score. Then, an adaptive threshold method based on minimum variance is proposed to determine the anomaly threshold and detect all anomaly subsequences. Finally, the anomaly subsequences are clustered, and the obtained cluster centers are anomaly patterns with different changing trends. The whole algorithm process not only solves the density imbalance problem without setting any parameters, but also simplifies the steps of the traditional density-based anomaly subsequence detection algorithm to achieve a good anomaly pattern recognition effect. Experimental results on the 10 data sets of UCR show that the proposed algorithm performs well in detecting anomaly subsequences and clustering anomaly subsequences without setting parameters.

  • 目前,时间序列的异常检测作为一项重要的数据挖掘任务,已被广泛应用到气象信息[1]、水文监测[2]、医疗保健[3]、工业应用[4]等众多领域中.根据异常的表现形式不同,时间序列的异常可以分为异常点、异常序列及异常子序列[5].异常点是与大部分数据点有显著差异的数据点[6-7];异常序列指的是与大部分时间序列有显著偏差的整条时间序列[8-9];异常子序列是与大部分子序列有显著不同的子序列[10-11].考虑到异常子序列可能与一段时间内的特殊事件有关,往往会比正常子序列包含更多有用的信息,更有研究价值,本文主要对异常子序列进行研究.

    异常子序列并非只有一种,不同的机制[12]会导致多类异常子序列的产生.例如,心电图的异常子序列即心率失常,可以分为窦性心动过速、早搏、房颤、窦性心动过缓、房室传导阻滞等多种类型;水文时间序列中的异常子序列也可以分为洪水、干旱等多种异常类型.为了识别不同类型的异常,可以先检测异常子序列,然后再利用聚类算法区分异常子序列的类型,令一个异常模式代表一类异常子序列,进而实现异常模式的识别.下面分别对异常子序列检测和异常子序列聚类这2部分的相关工作进行说明.

    目前, 常见的异常子序列检测算法包括基于距离的异常子序列检测方法[13-15]、基于聚类的异常子序列检测方法[5,16] 、基于密度的异常子序列检测方法等[17-18].基于距离的异常子序列检测方法利用子序列之间的距离计算子序列的异常分数(异常因子), 通过比较异常分数与设定阈值的大小来检测异常子序列.文献[13]提出一种基于距离的异常子序列检测算法DBAD,通过计算两两子序列的欧氏距离,并比较其与分布中心的偏差程度实现异常子序列检测.文献[15]将子序列与其最近的k个子序列距离的平均值作为异常分数,并利用假设检验确定子序列是否异常.基于聚类的异常子序列检测方法是将子序列划分到不同的类簇中,使得簇中的子序列具有较高相似度,簇间的子序列具有较低相似度.通过分析子序列和类簇中心之间的关系,来寻找异常子序列.文献[16]使用模糊c均值聚类[19]来揭示子序列的结构,然后利用从簇中心和划分矩阵得到的重构准则[20]重建原始子序列,对于每个子序列,根据原始子序列与重建子序列的差值分配其异常分数.该聚类算法需要人为设置聚类个数,但在实际应用中,我们通常缺少对数据集的先验知识,这会严重影响聚类的效果.而基于密度的异常子序列检测方法是根据子序列的密度与其周围子序列的密度之间的比值来定义异常分数,从而检测出异常子序列.文献[18]提出了一种动态局部密度估计(dynamic local density estimation, DLDE)异常子序列检测算法,利用时间分割树(time split tree, TSTree)动态分割时间序列,并通过子序列中每个数据点的动态局部密度来评估子序列的异常程度;但该算法需要利用集成学习获取参数,算法复杂度较大.

    由于不同结构的异常子序列预示着不同的异常事件,因此需要对异常子序列进行聚类以区分不同类型的异常子序列,识别所有异常模式.这里介绍一些可用于聚类异常子序列的时间序列聚类算法.文献[21]提出了一种基于轨迹形状的时间序列聚类算法kmlShape,该算法是k均值聚类算法[22]的一个变体,利用弗雷歇距离计算出时间序列之间的距离,并提出弗雷歇平均值确定每个类别的均值以实现时间序列的聚类;文献[23]提出一种基于统计预处理的距离密度聚类DDC,将平滑和特征选择作为预处理步骤,在每个特性集群中进行距离密度聚类以完成时间序列聚类;文献[24]提出了一个新颖的时间序列聚类算法,该算法可以生成同质且较好分离的聚类,其采用标准的互相关距离度量方法并基于此提出了一个计算簇心的算法,在每一次迭代中都用其来更新时间序列的聚类分配.然而,这些聚类算法对输入参数较为敏感,影响最终聚类结果的正确性,这在一定程度上限制了这些聚类算法的应用.

    文献[2124]中提出的算法在设置参数方面较为薄弱,且忽略了异常子序列的类别区分问题,因此,本文重新定义了异常模式这一概念,提出一种基于自适应k近邻的异常模式识别算法(anomaly pattern recognition algorithm based on adaptive k nearest neighbor, APAKN).该算法首先根据各子序列的自适应k近邻计算其自适应距离比和相对密度,这里相对密度与传统基于密度的异常检测算法[25]的局部密度有所区别,无需计算待测对象密度与其邻域对象密度之比;然后提出一种基于最小方差的自适应阈值方法确定异常阈值;最后采用基于自适应k近邻的聚类算法自动发现聚类中心并聚类异常子序列.整个算法过程在无需设置任何参数的情况下,不仅解决了密度不平衡问题,还精简了传统基于密度异常子序列检测算法的步骤,实现良好的异常模式识别效果.

    定义1. 子序列.给定一子序列集合D={s1,s2,,si,,sN}, 其中N为子序列的个数, si={xi1,xi2,,xili}, 其中li表示子序列si所包含的数据点个数.

    定义2. 异常子序列和正常子序列.异常子序列是子序列集合D中异常分数大于异常阈值的子序列,异常子序列集合表示为D={s1,s2sisn}, 其中n为异常子序列的个数, 则正常子序列的个数为Nn,正常子序列集合表示为D+={s+1,s+2s+is+Nn}.

    定义3. 异常模式.异常模式是由相似异常子序列构成的类簇的中心, 异常模式集合表示为P={p1,p2,,pi,,pc},其中c为聚类后的类簇个数.

    定义4. 子序列距离.对于子序列集D中任意2个子序列si, sj, 采用动态时间弯曲(dynamic time warping,DTW)距离[26]度量计算sisj之间的距离ddtw(si,sj)

    ddtw(si,sj)=d(xili,xjlj)+min{ddtw(si,sj[1:lj1])ddtw(si[1:li1],sj)ddtw(si[1:li1],sj[1:lj1]). (1)

    其中,si[1:li1]si去除尾元素后剩余的子序列,即si[1:li1]=(xi1,xi2,,xili1)sj[1:lj1]sj去除尾元素后剩余的子序列,即sj[1:lj1]=(xj1,xj2,,xjlj1)d(xili,xjlj)表示数据点xili与数据点xjlj之间的欧氏距离,计算方法为

    d(xili,xjlj)=(xilixjlj)2. (2)

    定义5. 第k近邻和第k近邻距离.假设sisj为子序列集D中的子序列,对于任意正整数k,si的第k近邻为sjsi的第k近邻距离为sisj之间的距离ddtw(si,sj),记为kdk(si), sj需要满足2个条件:

    1) D中至少存在k个子序列sj, 使ddtw(si,sj)kdk(si)成立;

    2) D中最多存在k1个子序列sj,使ddtw(si,sj)<kdk(si)成立.

    定义6. k近邻域.子序列集合D中,除si外所有与si的距离小于等于si的第k近邻距离kdk(si)的子序列构成子序列sik近邻域KNNk(si),即

    KNNk(si)={sjD,sjsi|ddtw(si,sj)kdk(si)}. (3)

    KNNk(si)中子序列的个数定义为sik近邻个数,记为|KNNk(si)|.

    定义7. 反向 k近邻域.对于任意子序列sj(sjD),如果si属于sjk近邻域,则sj属于si的反向k近邻域RNNk(si),即

    RNNk(si)={sjD|ddtw(si,sj)kdk(sj)}. (4)

    RNNk(si)中子序列的个数定义为si的反向k近邻个数,记为|RNNk(si)|.

    为说明k近邻域和反向k近邻域,图1利用7个空心圆分别表示7个子序列,显示出各子序列之间的距离关系.表1列出近邻值k=4时7个子序列的k近邻域、反向k近邻域、反向k近邻个数.

    图  1  子序列分布示意图
    Figure  1.  Schematic diagram of subsequence distribution
    表  1  k = 4时子序列的k近邻域与反向k近邻域
    Table  1.  k Near Neighbors Domain and Reverse k Near Neighbors Domain of Subsequences when k = 4
    子序列k近邻域反向k近邻域反向k近邻个数
    s1{s3,s2,s5,s4}0
    s2{s4,s3,s5,s6}{s1,s3,s4,s6}4
    s3{s2,s5,s4,s7}{s1,s2,s4,s5,s7}5
    s4{s2,s5,s6,s3}{s1,s2,s3,s5,s6,s7}6
    s5{s4,s7,s3,s6}{s1,s2,s3,s4,s6,s7}6
    s6{s4,s5,s2,s7}{s2,s4,s5,s7}4
    s7{s5,s6,s4,s3}{s3,s5,s6}3
    下载: 导出CSV 
    | 显示表格

    表1可以看出,同一子序列的k近邻域和反向k近邻域并不存在对称关系.

    APAKN是一个基于自适应k近邻的异常模式识别算法,算法整体工作流程如图2所示,主要由异常子序列检测和异常子序列聚类2个部分组成.本节将对 APAKN 算法的基本思想及其实现过程进行详细介绍.

    图  2  APAKN的总体工作流程
    Figure  2.  The overall workflow of the APAKN

    为了确定子序列是否异常,查询各子序列的自适应k近邻值计算子序列的相对密度,根据相对密度计算异常分数,将异常分数大于异常阈值的子序列视为异常子序列.

    考虑到异常子序列具有较少的邻居,正常子序列具有较多的邻居,各子序列的k近邻值并不相同是自适应k近邻搜索算法区别于传统k近邻[27]算法的主要特征.搜索子序列si(siD)的自适应k近邻值ki的主要过程为:令搜索次数r=1,迭代地寻找每个子序列的r近邻域,使用Numr记录第r次迭代时{|RNNr(si)|}Ni=1集合中0的个数.若Numr在连续3次迭代中未发生变化,即Numr=Numr+1=Numr+2,则认为算法达到稳定状态,迭代停止,否则,令r=r+1继续迭代.将迭代停止后的迭代次数计为kf=r+2,子序列si的自适应k近邻值ki=max({|RNNr(si)|}kfr=1).

    图1中的子序列为例查找各子序列的自适应k近邻值.图3展示了7个子序列在r=1,r=2,r=3,r=4时的近邻情况.

    图  3  子序列在不同r值时的近邻情况
    Figure  3.  Neighbors of subsequences at different values of r

    r=1时, 图3 (a)展示了所有子序列的1近邻,{|RNN1(si)|}7i=1={0,2,1,3,1,0,0},其|RNN1(si)|=0的子序列为s1,s6,s7, 此时Num1=3.

    r=2 时,图3 (b)展示了所有子序列的2近邻,{|RNN2(si)|}7i=1={0,3,2,3,4,1,1} ,其|RNN2(si)|=0的子序列为s1, 此时Num2=1.

    r=3 时, 图3 (c)展示了子序列s1,s5的3近邻,{|RNN3(si)|}7i=1={0,4,3,5,6,2,1},其|RNN3(si)|=0的子序列为s1, 此时Num3=1.

    r=4 时, 图3 (d)展示了子序列s1,s5的4近邻,{|RNN4(si)|}7i=1={0,4,5,6,6,4,3},其|RNN4(si)|=0的子序列为s1, 此时Num4=1.

    r=2 时满足Num2=Num3=Num4, 搜索停止, kf=r+2=4, 输出所有子序列的自适应k值为{k1,k2,,k7}={0,4,5,6,6,4,3}.

    在得到子序列si(i=1,2,,N)的自适应k近邻值ki(i=1,2,,N)的基础上,计算子序列的相对密度来进一步得到子序列的异常分数.许多复杂的数据集可能有多个密度不同的集群,如果只比较局部密度的大小可能会将一些密度较小集群中的数据对象误检为异常.为解决密度不平衡问题,目前基于密度的异常子序列检测算法通常在估计出所有子序列的局部密度后,通过比较待测子序列的局部密度与其邻域内子序列的局部密度来检测异常,但算法结果对邻域参数较为敏感,人工选择合适的邻域参数较为困难,需要研究者的经验或大量的实验,也使算法不具备自适应性.为此,本文引入自适应距离比计算相对密度,不仅解决密度不平衡问题,而且无需人为选择近邻参数.

    km为集合{k1,k2,,kN}中的最大值,sji为子序列sikm近邻域中的子序列,kji为子序列sji的自适应k近邻值,sisji的距离为ddtw(si,sji)sji的第kji近邻距离为kdkji(sji),计算si与其km近邻域KNNkm(si)内所有子序列的自适应距离比.子序列si相对于子序列sji的自适应距离比为

    adr(si,sji)=ddtw(si,sji)kdkji(sji). (5)

    计算子序列si(siD)的相对密度,其为si与其所有KNNkm(si)内子序列的平均自适应距离比的倒数,KNNkm(si)中的子序列个数用|KNNkm(si)|表示.si的相对密度计算公式为

    M(si)=|KNNkm(si)|sjiKNNkm(si)adr(si,sji). (6)

    图4为例说明自适应距离比如何解决密度不平衡问题.图4s8,s9,s10属于高密度集群,s11为异常子序列,s12,s13,s14,s15,s16属于低密度集群.若是单纯将密度小的子序列视为异常,则低密度集群都有可能被视为异常.这里以s8,s11,s14为例证明自适应距离比解决密度不平衡问题的有效性.在该示例中km=8图4中已标注出s8,s11,s14的8近邻域范围,表2列出km=8s8,s11,s14相对于其第8近邻的自适应距离比.

    图  4  密度不平衡数据
    Figure  4.  Density imbalance data
    表  2  s8, s11, s14相对于其第8近邻的自适应距离比
    Table  2.  Adaptive Distance Ratio of s8, s11, s14 Relative to Its 8th Nearest Neighbor
    子序列sisi第8近邻s8is8i自适应k近邻值k8is8i的第k8i近邻自适应距离比
    s8s96s10adr(s8,s9)=ddtw(s8,s9)ddtw(s9,s10)=1.833
    s11s123s13adr(s11,s12)=ddtw(s11,s12)ddtw(s12,s13)=4.266
    s14s156s16adr(s14,s15)=ddtw(s14,s15)ddtw(s15,s16)=1.722
    下载: 导出CSV 
    | 显示表格

    表2可以看出adr(s8,s9)adr(s14,s15)相差较小,而adr(s11,s12)远大于adr(s8,s9)adr(s14,s15),根据相对密度的计算公式(6)可以推断出M(s8)M(s14)的值大致相同,而M(s11)远小于M(s8)M(s14)的值.这可以证明本文提出的自适应距离比和相对密度不受其所属集群密度的影响,解决了密度不平衡问题.

    子序列相对密度较低意味着其可能具有较高的异常分数.进一步,子序列si的异常分数为

    S(si)=1M(si) (7)

    得到异常分数集合S={S(s1),S(s2),,S(si),,S(sN)}后,对其做归一化处理,子序列si的最终异常分数为

    S(si)=S(si)min(S)max(S)min(S). (8)

    图1s1为例计算异常分数:由于{k1,k2,,k7}={0,4,5,6,6,4,3},所以该集合中的最大值km=6sj1为子序列s1的6近邻域中的子序列,即sj1(j=1,2,,6)KNN6(s1)={s3,s2,s5,s4,s7,s6}kj1为子序列sj1的自适应k近邻值,s3,s2,s5,s4,s7,s6的自适应k近邻值分别为5,4,6,6,3,4s3,s2,s5,s4,s7,s6的第kj1近邻分别是s6,s6,s1,s1,s4,s7,因此sj1的第kj1近邻距离分别为ddtw(s3,s6)ddtw(s2,s6)ddtw(s5,s1)ddtw(s4,s1)ddtw(s7,s4)ddtw(s6,s7);代入式(6)可以得到M(s1)=0.413, s1的原始异常分数为S(s1)=1M(s1)=0.586,归一化异常分数为S(s1)=1,后文中若无特殊说明,异常分数即是指归一化后的异常分数.

    为了准确确定异常子序列,需要设置异常阈值T,将待检测子序列si(i=1,2,,N)的异常分数S(si)与异常阈值T相比较.若S(si)<T,则子序列si正常;若S(si),则子序列{s}_{i} 异常,但异常阈值T选取通常是人为给定的,给实际应用带来较大困难.由于正常子序列远多于异常子序列,以往的异常阈值确定方法通常利用 3\sigma 准则[28]的思想,根据所有子序列异常分数的均值 u 和标准差 {{ \mathrm{\sigma}} } 确定异常阈值 T=u+3\sigma ,但由于不同数据集的异常率不同,T并不适用于所有数据集.考虑到同为异常或同为正常的子序列对之间的异常分数值相差较小,而正常子序列与异常子序列之间的异常分数值相差较大.在阈值合适的情况下异常子序列和正常子序列的异常分数集合的波动都较小,而方差能有效地衡量一组数据的波动程度.为此,本文提出一种新的基于最小方差的自适应阈值方法.

    T=u+\beta \; \sigma \text{,} (9)
    u=\frac{1}{N} \sum_{i=1}^{N}S'\left({s}_{i}\right) \text{,} (10)
    \sigma =\sqrt{\frac{1}{N} \sum_{i=1}^{N}(S'({s}_{i})-u{)}^{2}} \text{,} (11)

    其中均值 u 和标准差 \sigma 是确定值,令参数\beta \in \left\{{0,0.1}, {0.2,}{0.3},…,{2.8,2.9,3.0}\right\}.为了选择合适的 \beta 值确定最佳异常阈值 T ,以异常子序列和正常子序列的异常分数集合的方差之和作为目标函数,找出使得目标函数最小的 \beta 以确定异常阈值 T .

    J=\frac{1}{n}\sum_{i=1}^{n}\left(S'\right({s}_{i}^-)-{{u}^-)}^{2}+\frac{1}{N-n} \sum_{i=1}^{N-n}\left(S'\right({s}_{i}^+)-{u}^+{)}^{2} \text{,} (12)

    其中 {s}_{i}^{-} 为第 i 个异常子序列, {u}^{-} 为所有异常子序列的异常分数的均值, {s}_{i}^{+} 为第 i 个正常子序列, {u}^{+} 为所有正常子序列的异常分数的均值.

    图1中子序列为例确定异常阈值 T :所有子序列的异常分数的均值和标准差分别为0.280和0.315,\beta \in \left\{{0,0.1,0.2,0.3},… ,2.8,2.9,3.0\right\},则异常阈值T\in \left\{0.280,0.312,0.343,0.375,… ,1.162,1.194,1.225\right\},根据这31个阈值取值分别得到31种异常子序列集合,根据式(12)计算得出目标函数值的集合,当 \beta =0.3 时取得目标函数的最小值0.015,此时确定异常阈值T= 0.280+0.315\times 0.3=0.375,由于只有S'\left({s}_{1}\right)\geqslant T,则检测出图1中子序列 {s}_{1} 为异常子序.

    针对异常子序列的多样性,为区分不同类型的异常子序列,本节对得到的异常子序列{D}^{-}= \left\{{s}_{1}^{-}, {s}_{2}^{-}\text{,}…\text{,} {s}_{i}^{-}\text{,}…\text{,}{s}_{n}^{-}\right\}进行聚类,将每个聚类中心定义为一个异常模式,对不同的异常模式进行识别.本算法能够在聚类个数未知的情况下保证聚类结果的有效性.

    APAKN根据2个条件寻找聚类中心:1)聚类中心的密度高于其邻近的子序列的密度;2)任意2个类中心的距离相对较远.首先利用2.1节描述的自适应 k 近邻搜索算法确定所有异常子序列的自适应 k 近邻值{k}_{i}^{-}\left(i={1,2},…,n\right),将其作为各异常子序列的密度.将异常子序列中自适应 k 值最大的子序列作为第1个聚类中心 {p}_{1} ,在与 {p}_{1} 距离最远的 v 个子序列中找出密度最大的异常子序列作为第2个聚类中心 {p}_{2} ,其中v=\left[\dfrac{n}{10}\right]+1,即为异常子序列个数与10的比值取整加1.在距离存储单元搜索剩余子序列与2个聚类中心之间的距离,确定聚类数为2时各子序列所属聚类.同时使用轮廓系数(silhouette coefficient)[29]作为聚类有效性指标计算当前的轮廓系数 si{l}_{2} .

    当聚类数为 q 时,轮廓系数的计算公式为

    si{l}_{q}=\frac{1}{N}\sum_{i=1}^{q} \sum_{w\in{C}_{i}}\frac{dif\left(w,{C}_{i}\right)-sam\left(w,{C}_{i}\right)}{\text{max}(sam(w,{C}_{i}),dif(w,{C}_{i}))} \text{,} (13)

    其中 N 为所有子序列个数, {C}_{i} 表示第 i 个类簇, w 为属于类簇 {C}_{i} 的子序列,sam\left(w,{C}_{i}\right)被称为子序列 w 的簇内不相似度,是子序列 w 到同类其他子序列的平均距离, dif\left(w,{C}_{i}\right) 被称为子序列 w 的簇间不相似度, 是子序列 w 到所有其他簇的所有子序列的平均距离中最小的那一个.定义分别为:

    sam\left(w,{C}_{i}\right)=\frac{1}{{n}_{{C}_{i}}-1} \sum_{u\in {C}_{i}}{d}_{\text{dtw}}\left(w,u\right) \text{,} (14)
    dif\left(w,{C}_{l}\right)=\min\limits_{{C}_{l},l\neq i}\left\{\frac{1}{{n}_{{C}_{l}}}\sum_{u\in {C}_{l}}{d}_{\text{dtw}}\left(w,u\right)\right\}\text{,} (15)

    其中 {n}_{{C}_{i}} 为类别 {C}_{i} 所包含子序列的个数, {n}_{{C}_{l}} 为类别 {C}_{l} 所包含子序列的个数,{d}_{\text{dtw}}\left(w,u\right)表示子序列 w u 之间的DTW距离.轮廓系数的值越大,说明同类样本相距越近,不同样本相距越远,聚类效果越好.使得有效性指标最大的聚类中心集合即是算法求得的所有聚类中心.

    当聚类数为 i 时,在与已有聚类中心\left\{{p}_{1},{p}_{2},…, {p}_{i-1}\right\}的距离之和最大的 v 个子序列中找出密度最大的异常子序列作为第 i 个聚类中心 {p}_{i} ,把每个剩余异常子序列分配给距离其最近的聚类中心.计算此时的轮廓系数 si{l}_{i} ,若 si{l}_{i} < si{l}_{i-1} ,此时 c=i-1 ,则输出聚类中心集合P=\left\{{p}_{1},{p}_{2},…,{p}_{c}\right\},实现聚类中心的确定和异常子序列的划分.否则 i=i+1 ,继续寻找下一聚类中心 {p}_{i} .最终P=\left\{{p}_{1},{p}_{2},…,{p}_{i},…,{p}_{c}\right\}为本算法识别出的异常模式集合.

    假设图5包含所有异常子序列\left\{{s}_{1}^{-},{s}_{2}^{-}\text{,}\text{…}\text{,}{s}_{13}^{-}\right\}.首先根据自适应 k 近邻搜索算法重新确定这些子序列的自适应 k 值,\{{k}_{1}^{-},{k}_{2}^{-},…,{k}_{13}^{-}\}= \{4,4,8,4,4,6,4,4,7,5,5,5, 5\},将这些自适应 k 值作为各子序列密度;其次,由于异常子序列 {s}_{3}^{-} 为密度最大的异常子序列,则第1个聚类中心 {p}_{1}={s}_{3}^{-} v=\left[\dfrac{n}{10}\right]+1=\left[\dfrac{13}{10}\right]+1=2,与 {s}_{3}^{-} 距离最远的2个子序列中密度最大的异常子序列为 {s}_{13}^{-} ,即 {p}_{2}={s}_{13}^{-} ,剩余异常子序列的类别则由剩余子序列到 {s}_{3}^{-} {s}_{13}^{-} 的距离确定,得到2个类别\{{s}_{1}^{-},{s}_{2}^{-},{s}_{3}^{-},{s}_{4}^{-}, {s}_{5}^{-},{s}_{6}^{-}, {s}_{7}^{-},{s}_{8}^{-}\} \text{和} \{{s}_{9}^{-},{s}_{10}^{-},{s}_{11}^{-},{s}_{12}^{-},{s}_{13}^{-}\},利用式(13)计算 si{l}_{2}=0.571 ,与聚类中心\left\{{s}_{3}^{-},{s}_{13}^{-}\right\}的距离之和最大的2个子序列中密度最大的异常子序列为 {s}_{7}^{-} ,将非聚类中心的异常子序列分配类别后,计算得到si{l}_{3}=0.760,由于 si{l}_{3} > si{l}_{2} {s}_{7}^{-} 为第3个聚类中心 {p}_{3}={s}_{7}^{-} ,确定与聚类中心\{{s}_{3}^{-},{s}_{13}^{-},{s}_{7}^{-}\}的距离之和最大的2个子序列,其中密度最大的异常子序列为 {s}_{12}^{-} ,计算得si{l}_{4}=0.486;最后,由于 si{l}_{4} < si{l}_{3} ,所以最佳聚类个数 c=4-1=3 ,最终输出的异常模式集合为聚类中心集合\{{s}_{3}^{-},{s}_{13}^{-},{s}_{7}^{-}\}.

    图  5  异常子序列分布示意图
    Figure  5.  Schematic diagram of anomaly subsequence distribution

    算法1. APAKN算法.

    输入:子序列数据集D=\left\{{s}_{1},{s}_{2},…,{s}_{i},…,{s}_{N}\right\}

    输出:异常模式集合P=\left\{{p}_{1},{p}_{2},…,{p}_{i},…,{p}_{c}\right\}.

    步骤1.对于数据集D=\left\{{s}_{1},{s}_{2},…,{s}_{i},…,{s}_{N}\right\},计算所有子序列之间的DTW距离并将其存放在距离存储单元中以便随时调用,利用子序列距离搜索子序列{s}_{i}\left(i={1,2},…,N\right)的自适应 k 近邻值.

    步骤2.将 k 值集合\left\{{k}_{1},{k}_{2},…,{k}_{N}\right\}中的最大值 {k}_{m} 代入式(6)计算所有子序列的相对密度,计算异常分数和确定异常阈值,将异常分数大于异常阈值的子序列检测为异常子序列{D}^{-}=\{{s}_{1}^{-},{s}_{2}^{-}\text{,…,}{s}_{i}^{-}\text{,…,}{s}_{n}^{-}\}.

    步骤3.重新搜索异常子序列 {s}_{j}^{-} 的自适应 k {k}_{j}^{-} ,将其作为 {s}_{j}^{-} 的密度,根据所得密度和距离存储单元中的子序列距离迭代地获取聚类中心,并根据式(13)中的轮廓系数判断迭代停止时聚类中心的个数 c .

    步骤4.输出聚类中心集合,即异常模式集合P=\left\{{p}_{1},{p}_{2},…,{p}_{i},…,{p}_{c}\right\}.

    APAKN算法采用DTW度量所有子序列之间的距离,该步骤的最大时间复杂度为 O\left({N}^{2}{l}^{2}\right) ,其中数据集中子序列数为 N , 所有子序列长度都为 l ;异常子序列检测步骤的最大时间复杂度为O\left(N\;\text{log}\;N+N{k}_{m}\right),其中 {k}_{m} 为所有子序列自适应 k 值集合中的最大值;异常子序列聚类步骤的最大时间复杂度为O\left(n\;{{\rm{log}}}\;n\right),其中, n 为异常子序列的个数.可见,APAKN算法的时间复杂度为O\left({N}^{2}{l}^{2}+ N\;{{\rm{log}}}\;N+ N{k}_{m}+n\;{{\rm{log}}}\;n\right),由于N\;{{\rm{log}}}\;N+ N{k}_{m}+ n\;{{\rm{log}}}\;n\ll{N}^{2}{l}^{2},算法的时间复杂度可以表示为 O\left({N}^{2}{l}^{2}\right) .

    为了更好地验证所提出算法的有效性,采用了美国加州大学滨河分校(University of California Riverside,UCR)的时间序列数据集合[30]中的10个通用数据集作为实验对象对本文算法进行实验评估.由于APAKN算法主要是由异常子序列检测和异常子序列聚类2个方面组成,因此实验部分也将从这2个方向来进行评价.实验环境均为Win 10 64 b操作系统,Python 3.7.6软件,8 GB内存,Intel(R) Core(TM),i5-4200H CPU@2.80 GHz处理器.

    本次实验所用数据为 10 个公开的UCR数据集,由于UCR数据集中并未标出各类子序列是否异常,所以我们选择子序列个数最多的一类作为正常类,随机选择其他几类中的若干子序列组成异常类,使各数据集的异常率不同.表3列出了本次实验中各数据集的详细信息.以50words数据集为例,原数据集包含50个类别,其中类别号为2的子序列簇包含最多的子序列且被选作正常类,类别号为4,10,43的子序列簇被选作异常类,从中随机选择若干子序列作为实验中的异常子序列.

    表  3  实验数据集
    Table  3.  Experimental Data Sets
    数据集子序列
    长度
    类别
    个数
    正常类
    别号
    异常类
    别号
    子序列
    个数
    异常率/%
    50words2705024 , 10 , 4390520
    ECG5000140512 , 5500010
    FaceAll1311412 , 3 , 5225015
    Lighting7319753 , 4 , 614335
    Trace275412 , 3 , 420030
    Two_Patterns128431 , 2 , 4111413
    CBF128312 , 393018
    Synthetic_Control60621 , 3 , 4 , 5 , 660025
    StarLightCurves1024331 , 292367
    ElectricDevices96751 , 2 , 3 , 4166372
    下载: 导出CSV 
    | 显示表格

    本节使用准确率(Accuracy)、精确率(Precision) 、召回率(Recall) 、F值作为性能评价指标来评价本算法中异常子序列检测部分的性能,分别定义为:

    Accuracy=\frac{TP+TN}{TP+TN+FP+FN}, (16)
    Precision=\frac{TP}{TP+FP}, (17)
    Recall=\frac{TP}{TP+FN}, (18)
    F=\frac{2\times Precision\times Recall}{Precision+Recall}. (19)

    其中,TP被定义为将异常子序列检测为异常子序列的个数;FP为把非异常子序列检测为异常子序列的个数;FN为将异常子序列检测为非异常子序列的个数;TN表示将非异常子序列正确检测为非异常子序列的个数.

    准确率代表的是所有正确预测的样本数占总样本数的比重;精确率衡量算法的查准率,即正确预测为异常子序列占全部预测为异常子序列的比例;召回率衡量算法的查全率,即正确预测为一场子序列占全部实际为异常子序列的比例;F值则为精确率和召回率的调和平均数,同时兼顾算法的精确率和召回率,F度量值的大小反映了聚类结果的精度,它是一个介于−1和1之间的值,该值越接近1,算法的精度就越高.

    为了证明APAKN算法的优异,图6将算法异常子序列检测部分在10个数据集上的部分实验结果可视化地表示出来.图6中共包含代表着10个数据集的10个子图,每个子图由2个部分组成:时间子序列和子序列异常分数.以50words数据集为例,该数据集的子序列长度为270,我们从类别号为4,10 ,43这3个异常子序列簇中分别选择了3个子序列,从类别号为2的正常子序列簇中选择若干子序列,将这些子序列的异常得分在图6 (a)中显示出来.如图6 (a)所示,异常子序列的异常分数远远高于正常子序列的异常分数.此外,对数据集的其他子序列都分配了一个异常分数来度量它们的异常程度.

    图  6  UCR部分时间子序列及其异常得分
    Figure  6.  UCR partial time subsequences and anomaly scores

    为了验证提出的异常模式识别算法APAKN在异常子序列检测部分的性能, 本文比较了APAKN与DBAD[13],SFO[15],DLDE[18]算法在各数据集的实验结果.APAKN利用自适应 k 近邻搜索算法自动确定各子序列的最佳近邻值\left\{{k}_{1},{k}_{2},…,{k}_{N}\right\} {k}_{m} 为近邻集合中的最大值;异常子序列检测部分的对比算法DBAD递归计算拟合分布均值方差,需要人为设置递归参数 t ;SFO需要人为设置近邻参数 k ;DLDE构造Hash表以加快估计子序列的局部密度,需人为设置参数Hash值 h .为了突出显示本文算法的优越性能,在10个实验数据集上,对3个对比算法分别进行多次实验,最终选出一个使其对应检测结果最优的参数值作为其最佳参数,分别记为 {t}_{\text{opt}} {k}_{\text{opt}} {h}_{\text{opt}} .APAKN算法得到的自适应 k 值中的最大值 {k}_{m} 以及对比算法相应的 {t}_{\text{opt}} {k}_{\text{opt}} {h}_{\text{opt}} 表4所示.

    表  4  APAKN的 {\mathit{k}}_{\mathit{m}} 值和对比算法的最佳参数值
    Table  4.  {\mathit{k}}_{\mathit{m}} Value of APAKN and the Optimal Parameter Values of Comparison Algorithms
    数据集APAKNDBADSFODLDE
    {k}_{m} {t}_{\text{opt}} {k}_{\text{opt}} {h}_{\text{opt}}
    50words1825924
    ECG500039312930
    FaceAll2520915
    Lighting717151615
    Trace15111016
    Two_Patterns54271418
    CBF66331730
    Synthetic_Control24161110
    StarLightCurves74867859
    ElectricDevices1569115388
    下载: 导出CSV 
    | 显示表格

    此外,APAKN提出基于最小方差的自适应阈值方法确定异常阈值;SFO算法利用统计假设检验方法判断数据是否异常,其计算较为复杂;而DLDE算法只是对所有数据对象按异常分数值降序排序,人为选择异常分数值最大的几个数据对象作为异常对象,该阈值选择方法需要实验者熟悉各数据集,并且对不同数据集进行实验时需要置换阈值参数,使实验过程更为繁琐.DBAD利用均值和方差确定异常阈值,同样需要人为设置阈值参数.本次实验利用较为常见的 3\sigma 准则作为DBAD和DLDE算法的异常阈值 T=u+3\sigma .基于表4的最佳参数,表5表6分别给出了4种算法在异常子序列检测部分的精确率和召回率以及准确率和F值.

    表  5  各算法在 10 个数据集上的精确率和召回率对比
    Table  5.  Comparison of Accuracy and Recall of Each Algorithm on 10 Data Sets
    数据集APAKNDBADSFODLDE
    精确率召回率精确率召回率精确率召回率精确率召回率
    50words1.0001.0000.8450.7420.4621.0001.0000.673
    ECG50000.8960.8750.6630.6190.6501.0000.8520.642
    FaceAll0.9121.0000.7960.8420.8571.0000.7430.685
    Lighting71.0000.9170.8740.9030.5790.9170.8450.683
    Trace0.9231.0000.9111.0000.7270.6671.0000.967
    Two_Patterns0.9540.9910.8520.8000.4440.5330.8450.667
    CBF1.0001.0000.8600.9140.5581.0001.0000.772
    Synthetic_Control1.0001.0000.7570.6370.7351.0001.0000.700
    StarLightCurves0.9120.8960.9120.8450.7740.6850.8750.689
    ElectricDevices0.9230.8510.8450.7980.8550.7620.7960.744
    注:黑体数值表示最佳值.
    下载: 导出CSV 
    | 显示表格
    表  6  各算法在 10 个数据集上的准确率和F值对比
    Table  6.  Comparison of Accuracy and F Value of Each Algorithm on 10 Data Sets
    数据集APAKNDBADSFODLDE
    准确率F准确率F准确率F准确率F
    50words1.0001.0000.9140.7900.8510.6320.9010.805
    ECG50000.9960.8850.9230.6400.9730.7880.8650.732
    FaceAll0.9800.9530.8020.8180.9610.9230.9930.713
    Lighting70.9740.9570.8260.8880.7690.7100.8750.755
    Trace0.9710.9600.8710.9530.8000.6960.9630.983
    Two_Patterns1.0000.9720.8360.8250.8760.4850.8960.746
    CBF1.0001.0000.9310.8860.9400.7160.8750.871
    Synthetic_Control1.0001.0000.8600.6910.8800.8470.6980.823
    StarLightCurves0.8950.9040.8890.8770.8520.7270.8570.771
    ElectricDevices0.9240.8860.8520.8210.8240.8060.8690.769
    注:黑体数值表示最佳值.
    下载: 导出CSV 
    | 显示表格

    表5给出了4种算法在10个数据集上异常子序列检测的精确率和召回率对比,表6则给出了异常子序列检测部分的准确率和F值对比, 可以看出,APAKN在10个数据集上的实验结果皆具有最佳性能. 此外,DBAD算法有1个最佳精确率和1个最佳召回率;SFO有6个最佳召回率;DLDE有4个最佳精确率.由上述实验结果可以判断出,相较于其他算法,本文算法不仅具有很强的自适应性,而且具有很高的异常子序列检测水平.

    本文利用调整兰德系数(adjusted rand index, ARI)[31] 和标准化互信息(normalized mutual information, NMI)[32]两种衡量标准对异常子序列聚类结果进行评判.这2个衡量标准的上限均为1,该值越接近1,表示该聚类算法的准确率越高,算法聚类结果越好.

    调整兰德系数值 {E}_{{{\rm{ARI}}}} 定义为

    {E}_{{{\rm{ARI}}}}= \frac{2\left({n}_{{{{a}}}}\times {n}_{{{{d}}}}-{n}_{{{{b}}}}\times {n}_{{{{c}}}}\right)}{\left({n}_{{{{b}}}}+{n}_{{{{d}}}}\right)\times \left({n}_{{{{a}}}}+{n}_{{{{c}}}}\right)+\left({n}_{{c}}+{n}_{{{{d}}}}\right)\times \left({n}_{{{{a}}}}+{n}_{{{{b}}}}\right)} . (20)

    其中{n}_{{{{a}}}}表示在算法聚类结果中为同一类、在数据集真实聚类中也为同一类的子序列对数;{n}_{{{{b}}}}表示在算法聚类结果中为同一类、在数据集真实聚类中不为同一类的子序列对数;{n}_{{{{c}}}}表示在算法聚类结果中不为同一类、在数据集真实聚类中为同一类的子序列对数;{n}_{{{{d}}}}表示在算法聚类结果中不为同一类、在数据集真实聚类中也不为同一类的子序列对数.

    标准化互信息值 {E}_{{{\rm{N}}}{{\rm{M}}}{{\rm{I}}}} 定义为

    {E}_{{{\rm{N}}}{{\rm{M}}}{{\rm{I}}}}= \frac{\displaystyle\sum_{i=1}^{{c}_{{{{A}}}}}\displaystyle\sum_{j=1}^{{c}_{{{{B}}}}}{n}_{ij}{{\rm{lb}}}\frac{n\times {n}_{ij}}{{n}_{i}\times {n}_{j}}}{\sqrt{\left(\displaystyle\sum_{i=1}^{{c}_{{{{A}}}}}{n}_{i}{{\rm{lb}}}\frac{{n}_{i}}{n}\right)\times \left(\displaystyle\sum_{j=1}^{{c}_{{{{B}}}}}{n}_{j}{{\rm{lb}}}\frac{{n}_{j}}{n}\right)}} \text{,} (21)

    其中{c}_{{{{A}}}}表示算法聚类结果的聚类类别数,{c}_{{{{B}}}}表示数据集本质聚类类别数, {n}_{ij} 表示子序列属于真实标签类 j 但被划分到聚类结果簇 i 中的个数, {n}_{i} 表示聚类结果类 i 中子序列的个数, {n}_{j} 表示真实标签类 j 中子序列的个数.

    为了证明APAKN算法的优异, 图7图8分别将算法异常子序列聚类部分在50words和CBF数据集上的实验结果可视化地表示出来.图7包含代表着3类异常子序列的异常子序列示例和聚类算法下生成的簇质心即异常模式.通过图7中不同类别下的异常子序列的示例可以看出,同一类别下的异常子序列具有相同的趋势.从异常模式图可以看出算法得到的质心很好地表征了每个类别的趋势特征.

    图  7  50words数据集在不同类别下的异常子序列示例和异常模式
    Figure  7.  Examples of anomaly subsequences and anomaly patterns in different categories of the 50words dataset
    图  8  CBF数据集在不同类别下的异常子序列示例和异常模式
    Figure  8.  Examples of anomaly subsequences and anomaly patterns in different categories of the CBF dataset

    在异常子序列聚类部分,本文选择了kmlShape[21],DDC[23],KShape[24]算法进行性能比较.APAKN的聚类部分同样无需设置任何参数,而为了更好地显示出算法的优异性,对3种对比算法都进行了参数调优.由于kmlShape算法选取的初始类簇中心不同,则聚类结果也不同,对每个数据集进行多次重复实验, 取其中最好的结果.kmlShape,DDC,KShape算法需要给定类簇个数,为这3种算法分别选出一个使评价指标最优的参数作为其聚类个数.表7为APAKN的异常子序列聚类部分在10个UCR数据集上与kmlShape,DDC,KShape这3种算法的聚类结果对比.

    表  7  各算法在 10 个数据集上的ARI和NMI对比
    Table  7.  Comparison of ARI and NMI of Each Algorithm on 10 Data Sets
    数据集APAKNkmlShapeDDCKShape
    {E}_{\mathrm{A}\mathrm{R}\mathrm{I}} {E}_{\mathrm{N}\mathrm{M}\mathrm{I}} {E}_{\mathrm{A}\mathrm{R}\mathrm{I}} {E}_{\mathrm{N}\mathrm{M}\mathrm{I}} {E}_{\mathrm{A}\mathrm{R}\mathrm{I}} {E}_{\mathrm{N}\mathrm{M}\mathrm{I}} {E}_{\mathrm{A}\mathrm{R}\mathrm{I}} {E}_{\mathrm{N}\mathrm{M}\mathrm{I}}
    50words0.8140.8250.5620.5280.5240.6580.7520.635
    ECG50000.8270.7680.6620.6120.5860.6930.8250.698
    FaceAll1.0001.0000.8140.8020.7250.5470.4080.662
    Lighting70.8360.9050.6350.6200.4330.6230.6890.814
    Trace0.5220.7340.5860.5320.4250.3890.3680.647
    Two_Patterns1.0001.0000.6330.3960.3620.4120.4530.504
    CBF0.9250.8140.7550.8520.6150.5780.8470.689
    Synthetic_Control0.4570.6670.6430.6140.3030.3390.4780.713
    StarLightCurves0.9560.7560.7890.8120.5460.6320.8740.684
    ElectricDevices0.8570.8590.4780.5320.7220.5660.6470.684
    注:黑体数值表示最佳值.
    下载: 导出CSV 
    | 显示表格

    通过表7可知,即使已经给定了对比算法的最佳参数,kmlShape,DDC,KShape算法的聚类结果还是波动较大, DDC聚类效果不佳.kmlShape算法在FaceAll,Trace,CBF,Synthetic_Control数据集上的性能值较优,在其他数据集上的表现不佳;KShape算法在50words,ECG5000,Lighting7,CBF数据集上表现较好.但从总体上来看,APAKN在各个数据集上的评价指标值大部分都要优于与之比较的算法,其余指标均值与最佳指标值相差不大.

    因此,结合异常子序列检测与异常子序列聚类2部分的实验结果, 可以验证出算法APAKN是有效可行的.

    本文提出了基于自适应 k 近邻的异常模式识别算法APAKN,该算法在无需任何参数输入的情况下,不仅检测异常子序列,还区分出异常子序列的不同类别,重新定义了异常模式.采用自适应 k 近邻搜索算法获取子序列的自适应 k 近邻值,解决传统 k 近邻算法的参数设置问题;提出一种基于最小方差的自适应阈值方法解决阈值选择问题;APAKN通过密度与距离结合的思想寻找最优聚类中心,并利用轮廓系数得到聚类数,从而实现异常子序列的快速聚类.在UCR数据集上的实验结果表明了APAKN算法的自适应性与有效性.下一阶段我们将考虑如何从距离度量方面减少算法的时间复杂度以期望提高算法的效率.

    作者贡献声明:王玲提出文章的算法思路设计,对论文的逻辑性以及算法的合理性进行指导;周南负责文章的定理和论证过程,以及实验部分的算法实现与实验结果分析;申鹏对文章整体格式进行修改.

  • 图  1   子序列分布示意图

    Figure  1.   Schematic diagram of subsequence distribution

    图  2   APAKN的总体工作流程

    Figure  2.   The overall workflow of the APAKN

    图  3   子序列在不同 r 值时的近邻情况

    Figure  3.   Neighbors of subsequences at different values of r

    图  4   密度不平衡数据

    Figure  4.   Density imbalance data

    图  5   异常子序列分布示意图

    Figure  5.   Schematic diagram of anomaly subsequence distribution

    图  6   UCR部分时间子序列及其异常得分

    Figure  6.   UCR partial time subsequences and anomaly scores

    图  7   50words数据集在不同类别下的异常子序列示例和异常模式

    Figure  7.   Examples of anomaly subsequences and anomaly patterns in different categories of the 50words dataset

    图  8   CBF数据集在不同类别下的异常子序列示例和异常模式

    Figure  8.   Examples of anomaly subsequences and anomaly patterns in different categories of the CBF dataset

    表  1   k = 4时子序列的k近邻域与反向k近邻域

    Table  1   k Near Neighbors Domain and Reverse k Near Neighbors Domain of Subsequences when k = 4

    子序列 k 近邻域反向 k 近邻域反向 k 近邻个数
    {s}_{1} \left\{{s}_{3},{\text{s}}_{2},{\text{s}}_{5},{\text{s}}_{4}\right\} \mathrm{\varnothing } 0
    {s}_{2} \left\{{s}_{4},{\text{s}}_{3},{\text{s}}_{5},{\text{s}}_{6}\right\} \left\{{s}_{1},{\text{s}}_{3},{\text{s}}_{4},{\text{s}}_{6}\right\} 4
    {s}_{3} \left\{{s}_{2},{\text{s}}_{5},{\text{s}}_{4},{\text{s}}_{7}\right\} \left\{{s}_{1},{\text{s}}_{2},{\text{s}}_{4},{\text{s}}_{5},{\text{s}}_{7}\right\} 5
    {s}_{4} \left\{{s}_{2},{\text{s}}_{5},{\text{s}}_{6},{\text{s}}_{3}\right\} \left\{{s}_{1},{\text{s}}_{2},{\text{s}}_{3},{\text{s}}_{5},{\text{s}}_{6},{\text{s}}_{7}\right\} 6
    {s}_{5} \left\{{s}_{4},{\text{s}}_{7},{\text{s}}_{3},{\text{s}}_{6}\right\} \left\{{s}_{1},{\text{s}}_{2},{\text{s}}_{3},{\text{s}}_{4},{\text{s}}_{6},{\text{s}}_{7}\right\} 6
    {s}_{6} \left\{{s}_{4},{\text{s}}_{5},{\text{s}}_{2},{\text{s}}_{7}\right\} \left\{{s}_{2},{\text{s}}_{4},{\text{s}}_{5},{\text{s}}_{7}\right\} 4
    {s}_{7} \left\{{s}_{5},{\text{s}}_{6},{\text{s}}_{4},{\text{s}}_{3}\right\} \left\{{s}_{3},{\text{s}}_{5},{\text{s}}_{6}\right\} 3
    下载: 导出CSV

    表  2   s8, s11, s14相对于其第8近邻的自适应距离比

    Table  2   Adaptive Distance Ratio of s8, s11, s14 Relative to Its 8th Nearest Neighbor

    子序列 {s}_{i} {s}_{i} 第8近邻 {s}_{i}^{8} {s}_{i}^{8} 自适应 k 近邻值 {k}_{i}^{8} {s}_{i}^{8} 的第 {k}_{i}^{8} 近邻自适应距离比
    {s}_{8} {s}_{9} 6 {s}_{10} adr\left({s}_{8},{s}_{9}\right)=\dfrac{{d}_{\text{dtw}}\left({s}_{8},{s}_{9}\right)}{{d}_{\text{dtw}}\left({s}_{9},{s}_{10}\right)}=1.833
    {s}_{11} {s}_{12} 3 {s}_{13} adr\left({s}_{11},{s}_{12}\right)=\dfrac{{d}_{\text{dtw}}\left({s}_{11},{s}_{12}\right)}{{d}_{\text{dtw}}\left({s}_{12},{s}_{13}\right)}=4.266
    {s}_{14} {s}_{15} 6 {s}_{16} adr\left({s}_{14},{s}_{15}\right)=\dfrac{{d}_{\text{dtw}}\left({s}_{14},{s}_{15}\right)}{{d}_{\text{dtw}}\left({s}_{15},{s}_{16}\right)}=1.722
    下载: 导出CSV

    表  3   实验数据集

    Table  3   Experimental Data Sets

    数据集子序列
    长度
    类别
    个数
    正常类
    别号
    异常类
    别号
    子序列
    个数
    异常率/%
    50words2705024 , 10 , 4390520
    ECG5000140512 , 5500010
    FaceAll1311412 , 3 , 5225015
    Lighting7319753 , 4 , 614335
    Trace275412 , 3 , 420030
    Two_Patterns128431 , 2 , 4111413
    CBF128312 , 393018
    Synthetic_Control60621 , 3 , 4 , 5 , 660025
    StarLightCurves1024331 , 292367
    ElectricDevices96751 , 2 , 3 , 4166372
    下载: 导出CSV

    表  4   APAKN的 {\mathit{k}}_{\mathit{m}} 值和对比算法的最佳参数值

    Table  4   {\mathit{k}}_{\mathit{m}} Value of APAKN and the Optimal Parameter Values of Comparison Algorithms

    数据集APAKNDBADSFODLDE
    {k}_{m} {t}_{\text{opt}} {k}_{\text{opt}} {h}_{\text{opt}}
    50words1825924
    ECG500039312930
    FaceAll2520915
    Lighting717151615
    Trace15111016
    Two_Patterns54271418
    CBF66331730
    Synthetic_Control24161110
    StarLightCurves74867859
    ElectricDevices1569115388
    下载: 导出CSV

    表  5   各算法在 10 个数据集上的精确率和召回率对比

    Table  5   Comparison of Accuracy and Recall of Each Algorithm on 10 Data Sets

    数据集APAKNDBADSFODLDE
    精确率召回率精确率召回率精确率召回率精确率召回率
    50words1.0001.0000.8450.7420.4621.0001.0000.673
    ECG50000.8960.8750.6630.6190.6501.0000.8520.642
    FaceAll0.9121.0000.7960.8420.8571.0000.7430.685
    Lighting71.0000.9170.8740.9030.5790.9170.8450.683
    Trace0.9231.0000.9111.0000.7270.6671.0000.967
    Two_Patterns0.9540.9910.8520.8000.4440.5330.8450.667
    CBF1.0001.0000.8600.9140.5581.0001.0000.772
    Synthetic_Control1.0001.0000.7570.6370.7351.0001.0000.700
    StarLightCurves0.9120.8960.9120.8450.7740.6850.8750.689
    ElectricDevices0.9230.8510.8450.7980.8550.7620.7960.744
    注:黑体数值表示最佳值.
    下载: 导出CSV

    表  6   各算法在 10 个数据集上的准确率和F值对比

    Table  6   Comparison of Accuracy and F Value of Each Algorithm on 10 Data Sets

    数据集APAKNDBADSFODLDE
    准确率F准确率F准确率F准确率F
    50words1.0001.0000.9140.7900.8510.6320.9010.805
    ECG50000.9960.8850.9230.6400.9730.7880.8650.732
    FaceAll0.9800.9530.8020.8180.9610.9230.9930.713
    Lighting70.9740.9570.8260.8880.7690.7100.8750.755
    Trace0.9710.9600.8710.9530.8000.6960.9630.983
    Two_Patterns1.0000.9720.8360.8250.8760.4850.8960.746
    CBF1.0001.0000.9310.8860.9400.7160.8750.871
    Synthetic_Control1.0001.0000.8600.6910.8800.8470.6980.823
    StarLightCurves0.8950.9040.8890.8770.8520.7270.8570.771
    ElectricDevices0.9240.8860.8520.8210.8240.8060.8690.769
    注:黑体数值表示最佳值.
    下载: 导出CSV

    表  7   各算法在 10 个数据集上的ARI和NMI对比

    Table  7   Comparison of ARI and NMI of Each Algorithm on 10 Data Sets

    数据集APAKNkmlShapeDDCKShape
    {E}_{\mathrm{A}\mathrm{R}\mathrm{I}} {E}_{\mathrm{N}\mathrm{M}\mathrm{I}} {E}_{\mathrm{A}\mathrm{R}\mathrm{I}} {E}_{\mathrm{N}\mathrm{M}\mathrm{I}} {E}_{\mathrm{A}\mathrm{R}\mathrm{I}} {E}_{\mathrm{N}\mathrm{M}\mathrm{I}} {E}_{\mathrm{A}\mathrm{R}\mathrm{I}} {E}_{\mathrm{N}\mathrm{M}\mathrm{I}}
    50words0.8140.8250.5620.5280.5240.6580.7520.635
    ECG50000.8270.7680.6620.6120.5860.6930.8250.698
    FaceAll1.0001.0000.8140.8020.7250.5470.4080.662
    Lighting70.8360.9050.6350.6200.4330.6230.6890.814
    Trace0.5220.7340.5860.5320.4250.3890.3680.647
    Two_Patterns1.0001.0000.6330.3960.3620.4120.4530.504
    CBF0.9250.8140.7550.8520.6150.5780.8470.689
    Synthetic_Control0.4570.6670.6430.6140.3030.3390.4780.713
    StarLightCurves0.9560.7560.7890.8120.5460.6320.8740.684
    ElectricDevices0.8570.8590.4780.5320.7220.5660.6470.684
    注:黑体数值表示最佳值.
    下载: 导出CSV
  • [1]

    O'Leary B, Reiners J J, Xu Xiaohong, et al. Identification and influence of spatio-temporal outliers in urban air quality measurements[J]. Science of The Total Environment, 2016, 573: 55−65

    [2]

    Qin Yu, Lou Yuansheng. Hydrological time series anomaly pattern detection based on isolation forest[C] //Proc of the 3rd Information Technology, Networking, Electronic and Automation Control Conf (ITNEC). Piscataway, NJ: IEEE, 2019: 1706−1710

    [3]

    Wang Jibin, Wang Ping, Wang Suping. Automated detection of atrial fibrillation in ECG signals based on wavelet packet transform and correlation function of random process[J]. Biomedical Signal Processing and Control, 2020, 55: 101662

    [4]

    Liang Haoran, Song Lei, Wang Jianxing, et al. Robust unsupervised anomaly detection via multi-time scale DCGANs with forgetting mechanism for industrial multivariate time series[J]. Neurocomputing, 2021, 423: 444−462

    [5]

    Wang Xing, Lin J, Patel N, et al. Exact variable-length anomaly detection algorithm for univariate and multivariate time series[J]. Data Mining and Knowledge Discovery, 2018, 32(6): 1806−1844 doi: 10.1007/s10618-018-0569-7

    [6] 苏卫星,朱云龙,刘芳,等. 时间序列异常点及突变点的检测算法[J]. 计算机研究与发展,2014,51(4):781−788

    Su Weixing, Zhu Yunlong, Liu Fang, et al. A detection algorithm of outlier and mutation points in time series[J]. Journal of Computer Research and Development, 2014, 51(4): 781−788 (in Chinese)

    [7] 刘芳,齐建鹏,于彦伟,等. 基于密度的Top-n局部异常点快速检测算法[J]. 自动化学报,2019,45(9):1756−1771 doi: 10.16383/j.aas.c180425

    Liu Fang, Qi Jianpeng, Yu Yanwei, et al. A fast algorithm for density-based Top-n local outlier detection[J]. Acta Automatica Sinica, 2019, 45(9): 1756−1771 (in Chinese) doi: 10.16383/j.aas.c180425

    [8]

    Hyndman R J, Wang E, Laptev N. Large-scale unusual time series detection[C] //Proc of the 15th IEEE Int Conf on Data Mining Workshop (ICDMW). Piscataway, NJ: IEEE, 2015: 1616−1619

    [9]

    Senin P, Lin J, Wang Xing, et al. Time series anomaly discovery with grammar-based compression[C] //Proc of the 18th Int Conf on Extending Database Technology(EDBT). New York: ACM, 2015: 481−492

    [10]

    Boniol P, Palpanas T. Series2graph: Graph-based subsequence anomaly detection for time series[J]. Proceedings of the VLDB Endowment, 2020, 13(12): 1821−1834 doi: 10.14778/3407790.3407792

    [11]

    Cheng Kaiwen, Chen Yietarng, Fang Wenhsien. An efficient subsequence search for video anomaly detection and localization[J]. Multimedia Tools and Applications, 2016, 75: 15101−15122

    [12]

    Hawkins D. Identification of outliers[M] //Monographs on Applied Probability and Statistics. Berlin: Springer, 1980: 51−73

    [13]

    Huo Wunjun, Wang Wei, Li Wen. Anomalydetect: An online distance-based anomaly detection algorithm[C] //Proc of the Int Conf on Web Services. Berlin: Springer, 2019: 63−79

    [14]

    Zhang Pengcheng, Xiao Yan, Zhu Yuelong, et al. A new symbolization and distance measure based anomaly mining approach for hydrological time series[J]. International Journal of Web Services Research, 2016, 13(3): 26−45 doi: 10.4018/IJWSR.2016070102

    [15]

    Zheng Dequan, Li Fenghuan, Zhao Tiejun. Self-adaptive statistical process control for anomaly detection in time series[J]. Expert Systems with Applications, 2016, 57: 324−336

    [16]

    Izakian H, Pedrycz W. Anomaly detection in time series data using a fuzzy c-means clustering[C] //Proc of the Joint IFSA World Congress and NAFIPS Annual Meeting (IFSA/NAFIPS). Piscataway, NJ: IEEE, 2013: 1513−1518

    [17]

    Medico R, Spina D, VandeGinste D, et al. Autoencoding density-based anomaly detection for signal integrity applications[C] //Proc of the 27th IEEE Conf on Electrical Performance of Electronic Packaging and Systems (EPEPS). Piscataway, NJ: IEEE, 2018: 47−49

    [18]

    Zhang Chunkai, Chen Yingyang, Yin Ao. Anomaly subsequence detection with dynamic local density for time series[G] //LNCS 11707: Proc of the 30th Int Conf on Database and Expert Systems Applications. Berlin: Springer, 2019: 291−305

    [19]

    Dunn J C. A fuzzy relative of the ISODATA process, and its use in detecting compact well-separated clusters[J]. Journal of Cybernetics, 1973, 3(3): 32−57 doi: 10.1080/01969727308546046

    [20]

    Pedrycz W, Oliveira V. A development of fuzzy encoding and decoding through fuzzy clustering[J]. IEEE Transactions on Instrumentation & Measurement, 2008, 57(4): 829−837

    [21]

    Genolini C, Ecochard R, Benghezal M, et al. kmlShape: An efficient method to cluster longitudinal data (time-series) according to their shapes[J]. PLoS ONE, 2016, 11(6): 1−24

    [22]

    Likas A, Vlassis N, Verbeek J J. The global k-means clustering algorithm[J]. Pattern Recognition, 2003, 36(2): 451−461 doi: 10.1016/S0031-3203(02)00060-2

    [23]

    Ma Ruizhe, Filali S B, Angryk R. Time series distance density cluster with statistical preprocessing[C] //Proc of the 20th Int Conf on Big Data Analytics and Knowledge Discovery. Berlin: Springer, 2018: 371−381

    [24]

    Paparrizos J, Gravano L. K-shape: Efficient and accurate clustering of time series[C] //Proc of the 42nd ACM SIGMOD Int Conf on Management of Data. New York: ACM, 2015: 1855−1870

    [25]

    Breunig M M , Kriegel H P , Ng R T , et al. LOF: Identifying density-based local outliers[C] //Proc of the 28th ACM SIGMOD Int Conf on Management of Data. New York: ACM, 2000: 93−104

    [26]

    Berndt D J, Clifford J. Using dynamic time warping to find patterns in time series[C] //Proc of the Workshop on Knowledge Discovery in Databases. New York: ACM, 1994: 229−248

    [27]

    Cover T, Hart P. Nearest neighbor pattern classification[J]. IEEE Transactions on Information Theory, 1967, 13(1): 21−27 doi: 10.1109/TIT.1967.1053964

    [28]

    Pukelsheim F. The three sigma rule[J]. The American Statistician, 1994, 48(2): 88−91

    [29]

    Pérez-Ortiz M, Durán-Rosal A M, Gutiérrez P A, et al. On the use of evolutionary time series analysis for segmenting paleoclimate data[J]. Neurocomputing, 2019, 326/327: 3−14

    [30]

    Dau H A, Bagnall A, Kamgar K, et al. The UCR time series archive[J]. IEEE/CAA Journal of Automatica Sinica, 2019, 6(6): 1293−1305 doi: 10.1109/JAS.2019.1911747

    [31]

    Qian Pengjiang, Chung Fulai, Wang Shitong, et al. Fast graph-based relaxed clustering for large data sets using minimal enclosing ball[J]. IEEE Transactions on Systems, Man, and Cybernetics, 2012, 42(3): 672−687 doi: 10.1109/TSMCB.2011.2172604

    [32]

    Wang Yangtao, Chen Lihui. K-MEAP: Multiple exemplars affinity propagation with specified K clusters[J]. IEEE Transactions on Neural Networks and Learning Systems, 2016, 27(12): 2670−2682 doi: 10.1109/TNNLS.2015.2495268

  • 期刊类型引用(3)

    1. 宋弘亮,江涵,张志刚,王凌云. 移动云端多标签数据时间序列异常值检测研究. 电子设计工程. 2025(06): 81-84+90 . 百度学术
    2. 尹飞,谌刚. 无线光通信网络隐蔽窃听攻击检测仿真. 计算机仿真. 2025(04): 401-405 . 百度学术
    3. 史子轶,夏向阳,刘佳斌,谷阳洋,王玉龙,洪佳瑶. 基于AKNN异常检验与ADPC聚类的低压台区拓扑识别方法. 中国电力. 2024(05): 168-177 . 百度学术

    其他类型引用(10)

图(8)  /  表(7)
计量
  • 文章访问数:  225
  • HTML全文浏览量:  40
  • PDF下载量:  149
  • 被引次数: 13
出版历程
  • 收稿日期:  2021-10-26
  • 修回日期:  2022-06-06
  • 网络出版日期:  2023-02-10
  • 刊出日期:  2022-12-31

目录

/

返回文章
返回