《YADING: Fast Clustering of Large-Scale Time Series Data》论文解读

1.介绍

本文提出了一个端到端的时间序列聚类算法-YADING,其可以自动对时间序列进行快速准确的聚类。算法由三个部分组成:

   (1)对输入数据进行采样。对大量的时序数据进行随机采样,并使用逐段聚集平均(PAA)算法缩减每条时序数据实例的维度。用采样后的数据集作为聚类算法的输入。

   (2)在采样后的时间序列上进行聚类。使用L1距离作为时序数据曲线间的相似性度量。在基于密度的聚类算法DBSCAN的基础上,设计出多密度的聚类算法Multi-DBSCAN,并使算法能够自动决定参数。

   (3)将剩余的输入数据分配到聚类中。对于采样中未被选择的大量时序数据曲线,采用分派策略将其分到与其L1距离最近的已聚类曲线所属的聚类簇中。同时建立了有序邻居图(Sorted Neighbor Graph, SNG)辅助计算时序数据实例之间的距离,提高分派算法的计算效率。

2.相关工作

现有的时间序列聚类算法可以分为两类:基于原始数据定义的相似度衡量方法,或者是基于从输入数据提取出来特征的方法。欧式距离(ED)、DTW属于第一类。ARIMA、高斯混合模型属于第二类衡量相似性的方法。基于模型的方法由于模型学习复杂从而导致时间复杂度较高。

上述方法研究的是通过利用原有的相似度衡量方法改进聚类算法,虽然原有的方法可以提高聚类准确性,但是时间复杂度相对比较高,本文提出了距离衡量时间复杂度低的快速聚类。

3.算法

YADING算法由三部分组成:数据降维、聚类、分配。数据降维通过对输入数据采样,并且减少输入数据维度。然后对采样的数据进行聚类。最后,所有的数据分配到采样数据的聚类中。

3.1 数据降维

本文通过随机采样和维度缩减的手段降低需要考察的实例数目和维度,将采样后的数据集作为聚类模块的输入,降低计算开销。

由于不需要对输入数据的分布作任何假设,随机采样(random sampling)是一种减少数据实例个数的有效手段。采样过程中需要遵循两个原则:(1)每个类别的数据均在采样集中出现至少m次。(2)采样集中各类别数据所占比例与原数据集中的比例偏差不超过给定阈值ε。基于上述原则,作者采用数学方法推导出采样数据集大小的上界和下界,对原始数据集进行随机采样。

对于每个时序数据实例,使用逐段聚集平均(Piecewise Aggregate Approximation,PAA)进行维度缩减。具体的,对于一条长度为D的时序数据,PAA将其划分为d个帧(d<D),将每个帧用一个值(例如该帧上数据点的均值)表示,从而将时序数据的长度从D减小为d,达到降维的目的。

通过上述两项操作,能够从规模为N*D的原始数据集中获得规模为s*d的采样数据集(s≤N, d≤D),且采样集保持原数据集的分布(underlying distribution)不变。用采样集作为聚类模块的输入,大大降低了计算开销。

扫描二维码关注公众号,回复: 5022217 查看本文章

3.2 聚类

以采样后的数据集作为输入,文中使用L1距离作为时序数据实例间的相似性度量,采用多密度的DBSCAN(Multi-DBSCAN)算法进行聚类。

点(x1,y1)与点(x2,y2)的L1距离可表示为:L1 = |x1-x2|+|y1-y2|。L1 距离计算复杂度低,且对于脉冲噪声具有一定的鲁棒性,适合作为处理大规模时序数据的相似性度量。

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

此外,密度估计(density estimation)是基于密度的聚类算法的核心,已有工作中通常通过人工选择或使用一些计算开销较大的算法得到合适的密度阈值。本文中,作者设计了一种高效算法对密度进行自动估计,并使用数学方法证明了其合理性。具体的,该算法计算输入数据集中的每个数据对象到其k邻近对象之间的距离k-dis,将k-dis值按照降序排列得到k-dis曲线,曲线上的最平坦点即为候选密度值(如下图所示)。对于输入的时序数据集,该算法能够自动检测出不同聚类簇的密度,分别以每个候选密度值作为参数使用DBSCAN算法进行聚类,即可将数据集划分为若干聚类簇,同时识别出与大多数时序曲线均不属于同一类别的异常曲线(outliers)。

3.3 分配

在对采样集进行聚类后,使用分配(assignment)策略对大量未分类时序数据曲线进行快速分类。具体的,对于一个未分类实例,找出与它相似性距离最近的已分类实例A。若二者的距离小于A所在聚类簇的密度半径,则将该实例划分至与A相同的类别中。否则,认为该实例是一个异常(outlier)。为提高计算效率,本文中还建立了有序邻居图,利用剪枝的方法加速寻找最邻近实例的过程,实现对大量时序数据的快速分类。

文中使用标准化互信息(Normalized Mutual Information, NMI)作为指标对聚类算法的准确性进行评价。作者分别在15个时序数据集上将本文提出的算法YADING与三种常用的聚类算法DECLUE2.0、DBSCAN、CLARANS进行对比,在不同规模数据集上的计算时间及所有数据集上的平均NMI如下图所示。可以看出,YADING在计算效率和聚类准确性方面均领先于几种常用算法。

4.讨论

目前YADING实现只能是单线程,可以将此作为今后改进算法的baseline。从上述可以了解到,YADING很容易并行化,可以通过并行化提高YADING的性能。

目前,YADING需要输入数据长度一致,为了处理不等长的时间序列,在数据输入YADING之前需要预处理,其中一种方法是采用下采样的方法。

5.结论

本文提出了一个新颖的端到端聚类算法,可以快速准确聚类大规模时间序列。理论证明YADING的时间复杂度和输入数据规模呈线性关系。选择L1作为相似度衡量以及多密度方法作为聚类方法是的YADING对时间序列的扰动和噪声具有鲁棒性。

猜你喜欢

转载自blog.csdn.net/qq_28900249/article/details/84097805