基于传统机器学习的序列数据分类算法主要分为两个步骤,
基本思想是通过构建距离度量
,衡量待分类序列数据与已知类别序列数据在时域表示空间上的距离。此方法的核心是如何构建一个合适的距离度量。根据不同的匹配方式,还可以分为 锁步度量
和弹性匹配度量
。
锁步度量中最常使用的是欧氏距离。
弹性匹配度量则常用动态时间规整(DTW–Dynamic Time Warping)和编辑距离。
邻近算法,或者说K最邻近(KNN,K-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一,也是最简单的机器学习算法之一。
KNN算法比较适用于样本容量比较大的类域的自动分类,而那些样本容量较小的类域采用这种算法比较容易产生误分。(大样本分类)
总体来说,KNN分类算法包括以下4个步骤:
①准备数据,对数据进行预处理 。
②计算测试样本点(也就是待分类点)到其他每个样本点的距离 。
③对每个距离进行排序,然后选择出距离最小的K个点
④对K个点所属的类别进行比较,根据少数服从多数的原则,将测试样本点归入在K个点中占比最高的那一类
“锁步”度量的代表
锁步”的距离度量:两条序列需要在时刻点上一一对应。对序列数据在时间维度上的扭曲、平移和幅度上的噪声、缩放非常敏感(效果差 or 压根处理不了)
对于n维的序列数据,计算其中两点X=(x1,x2,x3,)、Y=(y1,y2,y3,)的欧氏距离为
欧式距离计算复杂度低、时效好。
但是序列数据在实际应用中截断和采样率的差异无法保证具有相同长度。
因此对于长短不同的待测序列与模板序列、或者序列对应点在时刻上存在偏移时,无法有效计算欧氏距离。
弹性距离度量方法
该类方法在计算距离时不再要求两序列在时刻点上一一对应,适应序列数据在形状上的扭曲和缩放,克服了基于
锁步距离度量的分类方法的缺陷。
DTW 度量利用动态规划优化目标函数,考虑了序列数据 X 和 Y 在不同时刻 i 和 j 的距离,可以实现一对多的匹配,能处理序列数据之间的时刻偏移现象。
算法负责度大,需要依靠动态规划方法求解目标函数。且对序列的匹配路径没有额外约束,可能出现病态匹配——时间轴上相距很远的两个点也可能被匹配。
为抑制这种病态的、没有时间间隔约束的匹配情况,在DTW基础上进行改进,可以划分为基于加窗DTW度量
和加权DTW度量
。
除此以外,DTW度量的计算复杂度较高,每一次DTW的计算是 O(N^2 ) 的复杂度,而在搜索时间序列的时候需要进行M(M是被搜索的时间序列的长度)次的搜索,因此总的复杂度是 O(M*N^2) ,当时间序列很长的时候(M值很大)。
这个等待时间是非常可怕的。算法应用因此受到限制,为降低DTW度量的计算复杂度,提出了一些改进方法,包括:加窗法、下界距离法(Lower Bounding, LB)
和DTW质心平均法(DTW Barycenter Averaging,DBA)
。
弹性距离度量方法
加 窗DTW (window constrained DTW, WCDTW)
在原始DTW基础上引入约束窗的方式,减少匹配点对的搜索范围,可分为线性约束窗口和非线性约束窗口。
约束窗的存在让序列匹配点只能在窗的范围内进行。
约束窗的宽度越小,WCDTW 度量中匹配点对在时间轴上所允许的间隔就越小。
WCDTW依靠上述原理规避病态匹配,同时加窗截断了匹配计算路径,也就减少了距离计算量。
弹性距离度量方法
加权 DTW(weighted DTW, WDTW)
WCDTW 加窗DTW度量只考虑了窗内匹配,直接舍弃了约束窗外点对的距离计算。WDTW认为WCDTW这种截断匹配路径的做法拒绝了个例情况。从而提出了更平滑的匹配路径约束思路。
WDTW度量保留了所有点对间的距离计算,并根据点对距离赋予加权值:
权值公式如下:
a是时间距离, wmax通常设为1, m为序列总长度, g控制扭曲的惩罚等级。
WDTW 度量可以被看作是一种软阈值的 DTW 度量。并没有减少匹配计算量。
第一部分为Q的{U, L} 包络曲线(具体如图), 给Q序列的每个时间步定义上下界。
U和L直观的理解是在原始序列的周围包装另一个“封套”。
第二部分:计算Q和C之间的LB_keogh实际上等效于下图的阴影部分的面积:
此过程即在计算待匹配序列与模板序列上下边界的距离,得到 LB-Keogh下界距离。
DTW(X,Y)>=LB-Keogh下界距离。
我们开始对序列Q进行匹配,先计算好一次DTW距离,存在一个叫“best-so-far”的变量里,表示目前为止最好(最小)的DTW距离,在后面的计算中,我们使用一种叫Lower Bounding(LB)的计算,并且这种计算一定满足Lower Bounding距离 < DTW距离,而且这种Lower
Bounding的复杂度是远低于DTW距离的(通常复杂度是 )。这样如果在当前的匹配计算中发现Lower
Bounding已经大于当前的"best-so-far"距离,就可以立即排除,当前的计算不可能是最优的匹配。
LB-Keogh 距离的分类方法可以将原始 DTW 度量的计算复杂度由 O(n^2) 降低至O(n),而不明显损失分类精度
DBA 将 K 均值聚类算法中的欧氏距离替换为 DTW 距离,从而增强算法对形
状动态扭曲的适应能力,并使用著名的动态质心平均技术[23] 寻找每个类的质心。
在测试时,待匹配序列只需与这些“原型序列”进行比对,从而大大降低算法的
计算复杂度。
该方法应用著名的动态质心平均技术
寻找每个类的质心,这一技术将 K-means 聚
类算法中的欧氏距离替换为 DTW 距离,从而增强算法对形状动态扭曲的适应能力,此外, DBA也在类内求取多个质心以适应类内差异。
待更】
DTW 度量
与最简单的 KNN 分类器
的组合一直很难被击败。随着对 DTW 度量的改进逐渐遇到瓶颈,一个自然的思路是,利用 DTW 度量提取特征,并使用更先进的分类器替换 KNN 分类器
典型的改进工作包括:
使用SVM分类模型代替KNN(1nn)分类
GDTW-P-SVMs 最早尝试将 DTW 特征与更先进的分类器相结合;
该方法使用 DTW 度量替代高斯核 SVMs 核函数中的欧氏距离度量,然后训练多个二分类 SVM 分类器将多分类问题转化为多个二分类问题,最后通过投票融合各 SVM分类器的预测结果;
GDTW-P-SVMs 虽然保留了DTW 度量适应形状扭曲的优势和 SVMs 的出色分类性能,但该方法受限于 DTW 的计算复杂度而展现出高时间成本。
支持向量机(support vector machines, SVM)是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机;
SVM还包括核技巧,这使它成为实质上的非线性分类器。SVM的的学习策略就是间隔最大化,可形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题。SVM的的学习算法就是求解凸二次规划的最优化算法。
参考:svm分类器_SVM算法
通俗来讲,SVM是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,即支持向量机的学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。
在GDTW-P-SVMs基础上, 使用LB下界算法改进DWT距离算法,降低计算复杂度
方法采用前文提到的 LB_Keogh 快速下界距离替代 GDTW-P-SVMs 使用的 DTW 距离构建分类特征;这种做法虽然导致分类准确率略有下降,但却极大地加速了训练和测试过程。
使用Adaboost 分类器代替KNN分类
PS-AdaBoost 引入了 Adaboost 分类器进行分类;
该方法在 DTW 特征的每一维均建立带权值的弱分类器,并通过训练优化每个分类器的权值, 从而实现对分类器和各特征维度的筛选;
通过去除信息冗余, PS-AdaBoost 的分类效果和计算速度得到了提升。
Adaboost是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器)。
算法原理:
(1)初始化训练数据(每个样本)的权值分布:如果有N个样本,则每一个训练的样本点最开始时都被赋予相同的权重:1/N。
(2)训练弱分类器。具体训练过程中,如果某个样本已经被准确地分类,那么在构造下一个训练集中,它的权重就被降低;相反,如果某个样本点没有被准确地分类,那么它的权重就得到提高。同时,得到弱分类器对应的话语权。然后,更新权值后的样本集被用于训练下一个分类器,整个训练过程如此迭代地进行下去。
(3)将各个训练得到的弱分类器组合成强分类器。各个弱分类器的训练过程结束后,分类误差率小的弱分类器的话语权较大,其在最终的分类函数中起着较大的决定作用,而分类误差率大的弱分类器的话语权较小,其在最终的分类函数中起着较小的决定作用。换言之,误差率低的弱分类器在最终分类器中占的比例较大,反之较小。
参考:adaboost分类器
目前,TSC 领域涌现出了数目众多的弹性距离度量方法,但没有任何一种方法在分类精度和通用性两方面同时展现出明显优势。
因此,一些工作考虑集成多种弹性距离度量从而提升分类性能和泛化能力。
典型工作包括:
EE 借助 1NN 分类器对包括 LCSS、 MSM、DTW 和 WDTW 等在内的 11 种常用的弹性距离度量开展了广泛的实验对比
EE发现这些距离度量在分类精度上并没有显著差异,且各自适用于不同的分类问题,因此,EE对这11 种方法进行决策层的加权融合;
虽然 EE 利用了诸多距离度量的互补性,但也带来了极大的计算量。
首先在分类树的每个节点构建 R 种分支策略,每种分支策略包含从 EE中随机选取的一种弹性距离度量以及从各类别中随机选取的序列数据原型,然后寻找每个节点
对应的最佳分支策略从而递归地生成分类树以及分类森林;
Proximity Forest 明显提升了 EE 的分类性能,加快了 EE 的运算速度,是目前性能最好的序列数据分类方法之一。
编辑距离与 DTW 度量一样,也是为了处理不等长序列数据和时刻偏移而提
出的。
该类方法将字符串弹性匹配的思想引入序列数据分类,通过定义类似字符串匹配的操作进行相似性度量。主要的度量方法包括:
这些方法具有很强的渐进关系
与 DTW 度量最大的不同之处在于,编辑距离允许存在未匹配点,这在一定程度上抑制了噪声的影响。
在序列分类问题中,该方法通过设置距离阈值 θ 判断待考察序列中的点是否与模
板序列中的点相匹配,被判定匹配的点无需在位置上一一对应,从而 “弹性”地搜索两条序列中最长的公共子序列用于衡量两序列的相似度;
LCSS 度量量化了待考察序列与模板序列的共性,但未将两者之间的差异计入度量
EDR度量改进了LCSS未将考察序列和模板序列之间的差异计入度量这一缺陷。
该方法参考了字符串匹配中编辑距离的思想,在设定匹配条件后,通过统计待考察序列通过替换、插入和删除三种操作完全匹配于模板序列所需的最少操作次数,从而得到序列间的距离;
EDR 度量同时考虑了两序列之间的共性和差异,但受到编辑距离的限制,无法量化点与点之间的距离,因此比较粗糙。
对 EDR 度量进行了改进;
该方法不再统计转化操作次数,而是直接计算点对之间的欧氏距离,
当点对不匹配时,在待匹配点对应位置插入零值以示惩罚,最终累加转换后的两序列所有对应点之间的距离得到序列间的距离;
ERP 度量满足三角不等式,利用三角不等式可以大幅减少 ERP 度量的计算复杂度。
ERP 度量更加细致地量化了序列之间的距离,但零值惩罚的做法引入了较大的偏差。
MSM 是目前最先进的编辑距离度量;
该方法针对点对不匹配的情况进一步细化了惩罚方式,在待匹配点及其一近邻点中选取与模板点更近的点插入相应位置, 然后计算转换后的两序列之间的距离;
在 MSM 度量中,每种操作的代价不仅与当前目标点有关,还与目标点的相邻点有关。
MSM 度量的优点是对于时间弯曲敏感,对平移操作具有不变性;缺点在于计算复杂度较高,与 DTW 度量相当。
事实上,这种做法与DTW 度量已经非常接近。
除了上述几种弹性匹配度量外,目前已提出的弹性匹配度量还包括:
CID在现有幅度不变性、偏置不变性、局部尺度不变性、全局尺度不变性、相位不变性和遮挡不变性的基础上,引入了复杂度不变性的概念。通过一阶差分提取序列数据的复杂度信息,将复杂度信息引入欧式距离度量,得到复杂度加权的欧式距离度量。
DD_DTW 通过一阶差分运算引入形状特征的比较,构造加权 DTW 度量对原始序列数据对和差分序列数据对之间的距离进行加权平均。
DTD_C 在形状特征比较的基础上更进一步,通过正弦变换、余弦变换和希尔伯特变换提取序列数据的高阶特征,构建了基于序列数据本身、序列数据的形状特征和高阶特征的加权 DTW 度量。