Hallac, David, et al. “Toeplitz Inverse Covariance-Based Clustering of Multivariate Time Series Data.” KDD. (2017).
本文是2017年KDD最佳论文,解决了高维时间信号的自动分割聚类问题,并给出了基于python的源码(戳这里下载)。
核心思想
在实际问题中有大量随时间变化的高维信号。
- 驾驶汽车:油门,刹车,地理位置,空调,门窗…
- 支付软件:用户的登陆,转入,提现,消费…
在没有标定的情况下,想发掘这些数据中隐藏的信息,即将信号划分为若干可能的状态,并标记每条信号的各段。
- 驾驶汽车:起步,上坡,超车,拥堵…
- 支付软件:用户发薪,过节,打新股…
这就需要同时对数据进行两种操作:
- 将各条数据进行分割
- 将分割结果各个聚类
传统聚类方法考察信号各维度的绝对值,以确定信号间的相似度;
本文算法考察信号各维度之间的相关性,以确定信号间的相似度。
建模
信号段
设有时间长度为 T T T的原始信号
x = [ x 1 , x 2 . . . x T ] \textbf {x}=\left[ x_1, x_2...x_T\right] x=[x1,x2...xT]
实际应用中,会有来自多个用户的多段原始信号。这里可以直接将它们连缀成一个向量。如果需要考虑绝对时刻,则可以将时间戳也作为一维信号增补上去。
其中每一时刻的信号 x i x_i xi为 n n n维向量。
为了便于考察信号相关性,以每一时刻为基准,向前截取宽度为 w w w的一段:
X i = [ x i − w + 1 , . . . x i − 1 , x i ] X_i=\left[ x_{i-w+1},...x_{i-1}, x_i\right] Xi=[xi−w+1,...xi−1,xi]
i = 1 , 2... T i=1,2...T i=1,2...T
信号段 X i X_i Xi为 n w nw nw维向量。
类别信息
预期将所有信号段划分为 K K K类,属于第 j j j类的信号段序号集合记为 P j , j = 1 , 2... K P_j, j=1,2...K Pj,j=1,2...K。
举例:有信号段ABAAC, n = 5 n=5 n=5, K = 3 K=3 K=3。 P 1 = [ 0 , 2 , 3 ] , P 2 = [ 1 ] , P 3 = [ 4 ] P_1=[0, 2, 3], P_2=[1], P_3=[4] P1=[0,2,3],P2=[1],P3