论文笔记之Time Series Shapelets: A New Primitive for Data Mining

Time Series Shapelets: A New Primitive for Data Mining

对于时序数据,提出了一种新的特征,名为shapelet。
shapelet其实就是一段时序数据的子序列,能够很好的把不同的类别区分开来。
文中举了个例子,把树叶的外观轮廓描述到一维,作为时序数据来进行树叶的分类。

如上图所示,将叶子映射到一维后的时序数据的子序列与shapelet比较,并且选定一个阈值,通过一个简单的决策树模型可以完成分类。即如果叶子的数据有一段子序列和shapelet的距离小于阈值5.1,分为第一类;否则,分为第二类。

shapelet的优势在于:
·提供了可解释性。
·在一些数据集上,shapelet更加accurate和robust。大多数的分类器考虑的是全局特征,对于noise比较敏感。而shapelet是一个局部特征,更加的robust。
·用shapelet分类更快。

文中给出了一系列的定义,

数据点t1,...tm按时间顺序排列,并且间隔的时间跨度一样。

提取shapelet需要抽取特定长度的所有子序列,这可以用一个滑动窗口来实现。

S的上标表示子序列的长度,下标表示滑动窗口的起始位置。

需要定义一个距离函数来衡量两个序列之间的距离. Dist函数输入两个长度相等的时间序列,返回一个非负整数,并且距离的度量是对称的。(可以使用欧式距离,即对每一个时间点上的两个点求距离,再对所有点的距离求和)

定义一个函数来衡量不同长度的序列。其实就是找短序列和长序列在最佳匹配位置时的距离。如下图所示。

以二分类为例,接下来需要定义一个度量来评价把数据集划分成两类的准确程度。

上面给出了信息熵和信息增益的定义。
使用序列到shapelet的距离作为划分标准。shapelet是时间序列的一个子序列,使得数据集中一部分对象在subsequenceDist上和shapelet很接近,另一部分距离很远。

要找到最佳的shapelet,需要尝试很多候选shapelet。给出一个候选的shapelet,计算其与数据集中所有对象的距离。根据距离对这些对象进行排序,并找到一个最优的划分点。

上面给出了最优划分点(OSP)的定义。给定一个阈值d,把数据集中的对象划分成两部分,一部分距离shapelet的距离小于阈值d,另一部分大于等于阈值d。OSP是能够取得最大增益的阈值。
需要注意的是,使用shapelet进行划分包含了两部分:1.最优shapelet。2.对应的最优划分点。

最后给出了shapelet的定义,即用shapelet和它的最优划分点,能够最好的把数据集划分开来。
对于一个数据集,shapelet的长度必须小于等于数据集中最短的时序序列的长度。

FINDING THE SHAPELET

Brute-Force Algorithm

使用暴力法来找shapelet。(MAXLEN和MINLEN分别是指定的shapelet的最大长度和最小长度)
给定一个数据集D,D中的时序对象带有label A或B。Line1生成所有可能的候选子序列,bsf_gain表示最佳信息增益,计算所有候选子序列的最佳信息增益。

在GenerateCandidates()函数中,使用一个滑动窗口来生成所有的候选子序列,最后返回的是所有候选子序列的集合。

计算数据集中每个时序序列到候选shapelet的距离,并按照距离放入objects_histogram中。最后调用CalculateInformationGain来评价候选shapelet的好坏。

Line1找到最优划分点,之后根据最优划分点将数据集划分为两部分,最后计算这次划分的信息增益。
以前面的figure 6为例,直线上的所有点都可以作为候选的切分点,也就是有infinite种候选选择。为了减小搜索空间,只选择每一对临近点的中间点作为一个可能的划分点(在两个临近点直接选择任意的划分点,信息增益都是一样的),并且这种方式最大化了两个子集之间的margin。
然而暴力法需要存储所有可能的候选子序列,效率很低,并且时间复杂度也非常大。

Subsequence Distance Early Abandon

再计算候选shapelet和数据集中某一条时间序列的距离时,不需要把完整的距离计算出来。如果当前的距离已经超过了现有的最短距离,可以直接abandon。

Admissible Entropy Pruning

在暴力算法中,计算候选shapelet和每一个时序对象最近匹配的子序列占了大多数的时间,相比较而言信息增益的计算时间就比较少了。
基于这一点,可以根据当前已有的结果计算信息增益的upper bound,而不是等待候选shapelet和每个时序对象的距离计算完毕。如果在搜索过程中的任意时间点,upper bound不能超过当前最好的信息增益,则停止距离计算,并剪枝掉这个候选shapelet。

上图举了一个例子,元素的位置表示其距离候选shapelet的距离。红线代表划分点,信息增益的计算如上所示。

如上图,考虑另一个候选shapelet,数据集中的五个对象和候选shapelet的距离已经计算完成,并表示在图上。考虑剩下的点如何排放,可不可能获得比当前更好的信息增益?

考虑两种极端情况,蓝色的元素全部在最左边,红色的元素全部在最右边;或者是蓝色的元素全部在最右边,红色的元素全部在最左边。(上图表示第一种情况)
计算两种极端情况下的信息增益,上图的假设方式信息增益为

低于当前最优的信息增益。因此,这个时候可以停止对于剩下对象的距离计算,剪枝掉这个候选shapelet。

具体的pipeline流程如上所示,输入best-so-far信息增益bsf_gain,当前已经计算的数据集中的时序对象到候选shapelet的距离,以及剩下的时序对象cA和cB。如果可以剪枝,则函数返回TRUE。
为了简便,坐标轴上的最小距离minend设为0,最大距离maxend设为dist_hist+1。(作为两个极端边界,之后把剩下的元素放在这两边)
一轮询方式的计算序列(a1, b1, a2, b2, a3, b3, ...),可以更快的确定当前候选shapelet能否beat the best so far。

如果有多个候选shapelets增益相等,可以使用几种方法来选出一个:1.选择最长的。2.选择最短的。3.选择对于两类margin最大的。

SHAPELETS FOR CLASSIFICATION

可以通过决策树,用shapelet来分类。

你可能感兴趣的:(论文笔记之Time Series Shapelets: A New Primitive for Data Mining)