【时间序列】时间序列分割聚类算法TICC

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shenxiaolu1984/article/details/78134471

Hallac, David, et al. “Toeplitz Inverse Covariance-Based Clustering of Multivariate Time Series Data.” KDD. (2017).

本文是2017年KDD最佳论文,解决了高维时间信号的自动分割聚类问题,并给出了基于python的源码(戳这里下载)。

核心思想

在实际问题中有大量随时间变化的高维信号。
- 驾驶汽车:油门,刹车,地理位置,空调,门窗…
- 支付软件:用户的登陆,转入,提现,消费…

在没有标定的情况下,想发掘这些数据中隐藏的信息,即将信号划分为若干可能的状态,并标记每条信号的各段。
- 驾驶汽车:起步,上坡,超车,拥堵…
- 支付软件:用户发薪,过节,打新股…

这就需要同时对数据进行两种操作:
- 将各条数据进行分割
- 将分割结果各个聚类

传统聚类方法考察信号各维度的绝对值,以确定信号间的相似度;
本文算法考察信号各维度之间的相关性,以确定信号间的相似度。

建模

信号段

设有时间长度为 T 的原始信号

x=[x1,x2...xT]

实际应用中,会有来自多个用户的多段原始信号。这里可以直接将它们连缀成一个向量。如果需要考虑绝对时刻,则可以将时间戳也作为一维信号增补上去。

其中每一时刻的信号 xi n 维向量。

为了便于考察信号相关性,以每一时刻为基准,向前截取宽度为 w 的一段:

Xi=[xiw+1,...xi1,xi]

i=1,2...T

信号段 Xi nw 维向量。

类别信息

预期将所有信号段划分为 K 类,属于第 j 类的信号段序号集合记为 Pj,j=1,2...K

举例:有信号段ABAAC, n=5 , K=3 P1=[0,2,3],P2=[1],P3=[4]

认为每一类信号段服从0均值高斯分布,其协方差逆矩阵为 Θj,j=1,2...K 。这是一个 nw×nw 的矩阵。

Θi w×w 个子矩阵组成,每个子矩阵的尺寸为 n×n 。位置 pq 的子矩阵描述时刻 p 和时刻 q 之间, n 个维度之间的协方差逆矩阵。

[0w+1,...p,...q,...0]

这里假设信号是非时变的,不同时刻信号之间的关系 只和相对时间差有关;交换pq,其 协方差逆阵互为转置

换句话说, Θj 是个分块Toeplitz矩阵:
这里写图片描述
每条斜线上的子矩阵相同;对角对称斜线的子矩阵互为转置。

求解

我们需要轮流求解两个问题
- 给定 Θj ,求解信号段分类方法 Pj
- 给定 Pj ,求解各类逆协方差阵 Θj

信号段分类 Pj

给定 Θj ,把信号段 Xi 归入 j 类的代价可以负对数似然表示:

E(iPj)=ll(i,j)=log[N(Xi;0,Θ1j)]

=log[det(Θj)1/2exp[12XTiΘjXi]]=logdet(Θj)+XTiΘjXi

另外考虑信号的连续性:相连信号段不同类时施加惩罚 β

E(i,i+1)={0βi,i+1i,i+1

两个代价构成经典的流水线调度问题,可以使用BP算法求解。
这里写图片描述
其核心思路是:在给第i个信号段分类时,只需考虑第i-1信号段分为各类时的代价即可。

逆协方差阵 Θj

给定一类中所有信号段集合 Pj ,通过最小化其负对数似然总和,可以求解 Θj
各类可以并行计算,故书写时省去下标j。

E(Θ)=iPll(Xi,Θ)=iPlogdet(Θ)+XTiΘXi=E1+E2

求和号内第一项和 j 无关, || 表示集合内元素计数:

E1=|Pi|logdet(Θ)

求和号内第二项可以写成迹的形式:

E2=tr(iPXTiXi)=|Pi|tr(SΘ)

其中 S 是由 Pj 中所有信号段计算得到的当前协方差阵。1

另外添加一个正则项:

E3=||λΘ||1

其中 λ 为权重矩阵, 表示矩阵对位相乘。

根据前述,要求 Θ 是分块Toeplitz矩阵。

把问题稍作变换为如下形式,可以用ADMM2算法快速求解:

minimize logdetΘ+tr(SΘ)+|λZ||1

subject to Θ=Z,ZToeplitz

实验

正确率

使用模拟数据:信号维度 n=5 ,窗口宽度 w=5 。聚类数量 K 从2到4不等。每个实验包含 100K 个样本。
试验中直接固定 K 为真值。使用所有聚类的F1 score均值作为聚类质量评估。

可以看到,本文的TICC算法(第一行)有十分明显的优势。
这里写图片描述

TICC算法(蓝方块)聚类所需的样本数也较少。
这里写图片描述

可扩展性

使用 n=50 的高维样本,聚类数量 K=5 ,窗口宽度 w=3 。下图示出,当信号长度增加时,聚类时间的增长基本为线性。
这里写图片描述

真实案例

给出了汽车行驶案例,大家体会一下。

传感器 n=7

  • 刹车状态
  • 前向加速度
  • 侧向加速度
  • 方向盘角度
  • 速度
  • 发动机转速
  • 油门状态

每一组观测时长1小时,每隔0.1秒采样一次。共有36000组观测。

使用的窗口 w=10 时长1秒。

使用BIC方法3发现的最佳聚类数量为 K=5 。人工观察,它们对应于如下状态:
这里写图片描述


  1. 此处待推导。思路:证明 XTiΘXi SΘ 的特征值。其总和为该矩阵的迹。
  2. S. Boyd, N. Parikh, E. Chu, B. Peleato, and J. Eckstein. Distributed optimization and statistical learning via the alternating direction method of multipliers. Foundations and Trends in Machine Learning, 2011.
  3. T. Hastie, R. Tibshirani, and J. Friedman. The Elements of Statistical Learning. Springer, 2009.

猜你喜欢

转载自blog.csdn.net/shenxiaolu1984/article/details/78134471