1.介绍
本文提出了一个端到端的时间序列聚类算法-YADING,其可以自动对时间序列进行快速准确的聚类。算法由三个部分组成:
(1)对输入数据进行采样。对大量的时序数据进行随机采样,并使用逐段聚集平均(PAA)算法缩减每条时序数据实例的维度。用采样后的数据集作为聚类算法的输入。
(2)在采样后的时间序列上进行聚类。使用L1距离作为时序数据曲线间的相似性度量。在基于密度的聚类算法DBSCAN的基础上,设计出多密度的聚类算法Multi-DBSCAN,并使算法能够自动决定参数。
(3)将剩余的输入数据分配到聚类中。对于采样中未被选择的大量时序数据曲线,采用分派策略将其分到与其L1距离最近的已聚类曲线所属的聚类簇中。同时建立了有序邻居图(Sorted Neighbor Graph, SNG)辅助计算时序数据实例之间的距离,提高分派算法的计算效率。
2.相关工作
现有的时间序列聚类算法可以分为两类:基于原始数据定义的相似度衡量方法,或者是基于从输入数据提取出来特征的方法。欧式距离(ED)、DTW属于第一类。ARIMA、高斯混合模型属于第二类衡量相似性的方法。基于模型的方法由于模型学习复杂从而导致时间复杂度较高。
上述方法研究的是通过利用原有的相似度衡量方法改进聚类算法,虽然原有的方法可以提高聚类准确性,但是时间复杂度相对比较高,本文提出了距离衡量时间复杂度低的快速聚类。
3.算法
YADING算法由三部分组成:数据降维、聚类、分配。数据降维通过对输入数据采样,并且减少输入数据维度。然后对采样的数据进行聚类。最后,所有的数据分配到采样数据的聚类中。
3.1 数据降维
本文通过随机采样和维度缩减的手段降低需要考察的实例数目和维度,将采样后的数据集作为聚类模块的输入,降低计算开销。
由于不需要对输入数据的分布作任何假设,随机采样