时序数据的聚类分析不需要有标注的数据,人工成本低;通过聚类,可以发现数据中隐含的模式或相关性。因此,时序数据的聚类被广泛使用在各种场景。
由于时序数据的高度异质性,即包含噪声、缺失值、异常值,长度、采样率、变化速率不一,因此不能简单地视为高维向量,传统的基于欧式空间的聚类算法不能被直接利用。
聚类算法的好坏主要从两个方面来衡量:
- 准确性
- 效率
现有的聚类方法大致可以分为以下三类:
- 基于统计的聚类
这类方法从时序数据中抽取统计特征,如平均值、方差、倾斜度,以及一些高阶特征等,如ARIMA模型的系数、分形度量(fractal measures)等。或是划分窗口,在每个窗口内计算这些统计特征,再进行汇总。 - 基于形状的聚类
许多时序数据往往具有相同的变化模式(如上升、下降、上升等),因此可以根据这些时序数据的形状相似性将变化模式相似的序列聚在同一个类,可以忽略数据在整幅、时间尺度等的差异。
一些人工定义的距离(如DTW)具有尺度和平移不变性,因此被广泛用于基于形状的聚类。由于人工定义的距离是数据无关的,方便利用到各种领域的数据上,一个研究方向是定义新的距离度量,然后结合一个现成的聚类算法(k-means或层次化聚类等)。
这类方法中最先进的是[1], 该方法利用现有的距离度量的特性(scale-, translate-, and shift-invariant),提出了一种计算聚类中心的算法。
现有方法主要有两方面的缺点:
(1)时间复杂度高;
(2)易受到异常值、噪声的干扰
另一类是基于shapelets的方法[2,3],shapelets即一些短的序列,这些序列能够体现出整条序列的局部变化模式。
基于形状的聚类方法基本都有开源实现,python包tslearn中基本都包含了。
API Reference - tslearn 0.1.27 documentationtslearn.readthedocs.io
3. 基于深度学习的聚类
该类方法主要基于autoencoder模型将时序数据转换为低维的隐空间,现有的变分自编码器(variational autoencoder)等虽然能够在一定程度上容忍噪声、异常值等。但目前存在两方面的不足:
- 缺乏一种通用的方法来捕获时序数据的特性,从而得到有效的隐空间。
- 在得到的隐空间中需要一种合适的相似性度量考虑时间上的特性。
目前最先进的方法是[4],该方法同时训练一个autoencoder和k-mean(基于KL散度的loss)。autoencoder模型中先用1D卷积,然后接一个双向的LSTM,因此考虑了时序数据的局部和时间上的特征,但这也是时序数据常用的处理套路。
目前基于静态数据(向量数据)的聚类算法也有一定的发展,主要可分为以下几类:
(1)联合优化stacked autoencoder和k-means目标[5-7]。其中k-mean目标是基于KL散度计算的。(论文[6]和[7]貌似发生了撞车 )
(2)将变分自编码器(VAE)和高斯混合模型(K个聚类对应K个高斯分量)结合[8]。
(3) 同时训练K个autoencoders,每条数据根据哪个autoencoder得到的重建误差最小,该数据就属于哪个类[9,10]。(论文[9]和[10]貌似也发生了撞车 )
总结:基于深度学习的时序数据聚类还有较大的发展空间,目前基于静态数据的方法不能很好的考虑到时间序列在时间上的平移、伸缩等特性。
[1] k-Shape: Efficient and Accurate Clustering of Time Series. SIGMOD 2015.
[2] Clustering Time Series using Unsupervised-Shapelets. ICDE 2012.
[3] Unsupervised Feature Learning from Time Series. IJCAI 2016.
[4] Deep Temporal Clustering: Fully Unsupervised Learning of Time-Domain Features . 2018.
[5] Towards k-means-friendly spaces: Simultaneous deep learning and clustering. ArXiv 2017.
[6] Unsupervised deep embedding for clustering analysis. ICML 2016.
[7] Deep Clustering via Joint Convolutional Autoencoder Embedding and Relative Entropy Minimization. ICCV 2017.
[8] Variational Deep Embedding: An Unsupervised and Generative Approach to Clustering. ArXiv 2017.
[9] Deep Unsupervised Clustering Using Mixture of Autoencoders. ArXiv 2018.
[10] Deep Clustering Based on a Mixture of Autoencoders. 2019.