中文标题:高效精准的时序聚类算法K-Shape
英文标题:k-Shape: Efficient and Accurate Clustering of Time Series
发布平台:ACM SIGMOD
Proceedings of the 2015 ACM SIGMOD International Conference on Management of Data
发布日期:2015-05-27
引用量(非实时):703
DOI:10.1145/2723372.2737793
作者:John Paparrizos, Luis Gravano
文章类型:conferencePaper
品读时间:2022-01-19 17:23
1 文章萃取
1.1 核心观点
本文提出了一种领域独立、高精度、高效的时间序列聚类算法h-Shape。k-Shape以k-means算法为基础,根据时间序列的特殊性,设计了互相关的距离度量算法,以及将质心的寻找转为最优化问题,实现了对时间序列形状的考量,并通过大量数据和算法对比,验证了算法的鲁棒性、准确性和低计算成本。
1.2 综合评价
- 针对时序聚类做特定优化,包含对时间序列形状的解释性
- 设计了互相关的距离度量算法,并通过快速傅里叶变换加速运算
- 将质心的寻找转为(Rayleigh Quotient)瑞利商问题,实现最优化问题的快速计算
- 最终效果优秀,相比其他算法计算复杂度低两个数量级
1.3 主观评分:⭐⭐⭐⭐⭐
2 精读笔记
2.1 背景知识
时序聚类算法依赖于传统聚类算法,但需要更多适应性的调整,其中最常见的是对距离测度的创新
本文提出的K-Shape算法就是采纳了K-means聚类的思想,不过对于距离度量和质心计算进行了革新,并通过广泛实验进行了验证。
聚类追求的是:簇内样本尽可能相似(同质性最大,homogeneity),簇间样本尽可能不相似(差异性最大,separation),常见的设定目标为距离平方和最小
时序数据寻找质心的过程是一个典型的Steiner’s sequence问题,最终的质心应当满足距离簇内所有样本的距离平方和最小。而对于两段时序,衡量距离的常见方法为欧氏距离(Euclidean Distance,即ED)和动态时间规整(Dynamic Time Warping,即DTW):
描述时间序列相似度的几种不变性:缩放平移不变性(Scaling and translation invariances)、平移不变性(Shift invariance,可用于局部相似或存在相位差的情况)、均匀缩放不变性(Uniform scaling invariance,常用于时序对齐,比如均匀拉伸短序列或均匀压缩长序列)、闭塞不变性(Occlusion invariance,忽略局部或缺失的子序列)、复杂不变性(Complexity invariance,常用于形状相似但是细节丰富度不同的两个序列)
文中提供的距离测度方法具备伸缩平移不变性
2.2 K-Shape算法介绍
2.2.1 距离测度方法SBD
由于DTW高昂的计算成本,本文主要采用了互相关(Cross Correlation)作为基本的距离测度方法,并通过一系列的优化在一定程度上解决了互相关的性能缺陷。
假设存在两个长度一致的时序,分别为
这里之所以设定长度一致,主要是为了简化后续的公式,理解公式后,就发现可以很容易地应用到长度不一致的情况
互相关主要通过在
为了方便处理边缘情况,定义滑动时的
- 其中
, 对应滑动刚开始时, 左侧溢出的情况; 对应滑动快结束时, 右侧溢出的情况。- 最终计算的互相关序列长度为
,其中第 个互相关值为 :
这里的逻辑看起来复杂,其实就是滑动点乘,只不过将边缘情况考虑进去,而针对边缘情况的补零操作其实也就意味着不计算溢出部分
对互相关结果进行标准化的三种方法
以真实数据验证,数据长度均为
图中红圈对应了匹配度(标准化互相关)最高的时候,也是描述序列间距离的最佳位置
其中子图(d)即表示的本文所采用的标准化方法,对于两侧由于时序长度较短时的异常波动起到了很好的抑制作用,最高点对应的
而本文的距离(Shape-based distance,简称SBD)计算公式则是根据标准化互相关的简单变形:
具体算法流程如下:
2.2.2 质心计算
传统聚类算法,如K-means都是采用簇内均值作为质心的计算方式,但是这种方式对于时序数据来说,不能够把握住时序的特征,均值方法(实线)与本文方法(虚线)对比如下:
本文方法是建立最优化问题,寻找与第
由于均值方法得到的质心与本文方法得到的质心较为相似,所以考虑采用均值法质心用于时序对齐,计算得到合理的
令
最终公式转换为了一个(Rayleigh Quotient)瑞利熵问题,其最大特征值即对应了最优化问题的最大值,最大特征值对应的特征向量对应了本文所需的质心
具体算法流程如下:
2.2.3 K-shape时序聚类
K-shape聚类方法与K-means方法很像,只不过距离计算方法改为了SBD,质心计算方法也进行了相应调整,具体算法流程如下:
简单来说,就是在迭代中根据SBD将每个时序分配给最相似的簇,然后更新簇的质心,进入下一次迭代,直到最终簇的分布不再变化或者达到最大迭代次数(100)
算法复杂度分析:
- 计算SBD距离并分配每个时序给相应簇,其中计算SBD距离的复杂度为
,距离计算会重复 次,所以此过程最终计算复杂度为 - 计算矩阵
的复杂度为 ,求解矩阵 的特征矩阵的复杂度为 - 最终K-shape算法的计算复杂度为
2.3 实验评估
最终评估使用48个带标签数据集,不同数据集的序列个数从56到9000+不等,不同数据集的序列长度从24到1882不等,不过同一个数据集的序列长度相同
最终不同距离度量方法的对比如下:
初步结论:
- cDTW比DTW更快,精度更高
- SBD比DTW更快,略低于ED
- SBD fft+复杂度 权衡准确性和效率来说结果最好
不同聚类方法对比:
其中H表示层次聚类(H-S、H-A、H-C分别表示层次聚类的三种簇间距计算方式,Single Linkage 最近值,Complete Linkage最远值,Average Linkage平均值),S表示谱聚类,PAM表示Partitioning Around Medoi
相关资源
- 论文地址
- 论文源码
- 集成相关算法的工具:stlearn
- 本地文件地址:2015_k-Shape_Paparrizos_Gravano.pdf
- 本地Zotero地址:2015_k-Shape_Paparrizos_Gravano.pdf