聚类分析(cluster analysis)简称聚类(clustering),是根据事物自身的特性对被聚类对象进行类别划分的统计分析方法,其目的是根据某种相似度度量对数据集进行划分,将没有类别的数据样本划分成若干个不同的子集,这样的一个子集称为簇(cluster),聚类使得同一个簇中的数据对象彼此相似,不同簇中的数据对象彼此不同,即通常所说的“物以类聚”。
时间序列是数据的一种常见表示形式。对于时间序列处理来说,一个普遍的任务就是比较两个序列的距离 / 相似性。
1、距离 / 相似性度量
要找到相似的时序曲线,并将其聚为一类,需要有方法刻画时间序列的相似性。
在上图四条曲线中,a、b、d是形状相似的;在这三条曲线中,a与b是最相似的两条曲线是因为a、b距离最近。
因此相似的定义:距离最近且形状相似。——对序列之间的距离进行量化来代表其相似度高低。对于长度相同的序列,计算每两点之间的距离然后求和,距离越小相似度越高。
[闵可夫斯基距离]
闵可夫斯基距离是常用的距离度量方法,如上图左边所示,在一一对应的位置上进行对比。给定两条时间序列:和,距离度量的具体公式如下:
当p=1时,表示曼哈顿距离;p=2时,表示欧几里得距离(又称为欧式距离);当p趋近于无穷大时,该距离转换为切比雪夫距离,具体如下式所示:
闵可夫斯基距离比较直观,但是它与数据的分布无关,具有一定的局限性,如果x方向的幅值远远大于y方向的幅值,这个距离公式就会过度被x维度的作用。因此在加算前,需要对数据进行变换(去均值,除以标准差)。这种方法在假设数据各个维度不相关的情况下,利用数据分布的特性计算出不同的距离。如果数据维度之间数据相关,这时该类距离就不合适。
[马氏距离]
若不同维度之间存在相关性和尺度变换等关系,需要使用一种变化规则,将当前空间中的向量变换到另一个可以简单度量的空间中去测量。假设样本之间的协方差矩阵是,利用矩阵分解(LU分解)可以转换为下三角矩阵和上三角矩阵的乘积:。消除不同维度之间的相关性和尺度变换,需要对样本x做如下处理:。经过处理的向量就可以利用欧式距离进行度量。