Time Series Shapelets:A New Primitive for Data Mining

本篇论文发表于2009年,首次提出了shapelets这一概念。

摘要

shapelets是时间序列的一个子序列,可以称作最大区分子序列。这里的最大指的是这个子序列的区分能力最大。常用的近邻算法是一种全局性的方法,因为它需要用到全部的数据集,而shapelets属于一种局部模式,它使用具有区分能力的子序列来进行分类与聚类。它有两个优点:(1)局部模式;(2)具有很强的可解释性。

1、引言

近邻算法有两个弱点(1)时间空间开销大;(2)可解释性差,具体来说就是不能告诉我们为什么一个特定的对象被分配给一个特定的类。shapelets可以减轻这两个弱点。
论文中举了一个形象的例子来让读者直观的感受一下什么是shapelets。

上图中第一排树叶是荨麻草,第二排树叶是马鞭草也叫“假荨麻”,有些叶子被昆虫咬伤,这两种植物的叶子非常相似。现在要用一个分类器来区分这两种植物。那么应该选用什么特征?因为叶子的大小的颜色几乎是相同的,最好的选择就是基于叶子的形状。但是叶子整体上的形状差异是比较小的,而且由于昆虫咬伤以及其他变形会混淆任何基于全局形状的测量。尝试使用“局部形状”是一个比较好的想法。

如图,形状可以转化为一维的时间序列表示。这种转化后的时间序列可以用来分类、聚类等一系列数据挖掘任务。但是直接使用全部数据的欧式距离或DTW距离的近邻分类器效果并没有明显优于随机猜测(基本上没分出来)。原因就是数据中的噪声(比如本例中的昆虫咬伤)足以掩盖掉形状上的细微差异。但是可以不比较全部的数据,之比较数据中有差异的一小部分,这一个“小部分”便是本文提出的shapelets,体现在上图中就是红色的那一段子序列。

如图上图所示,通过找到的“两个类之间最好的区分子序列”,即shapelets,我们可以发现,两个物种之间最大的区别在于茎与叶子的连接角度,荨麻草大约为90度,假荨麻要比90度大得多(这里可以体现shapelets的可解释性)。找到shapelets并且计算它到数据集中所有实例最近匹配的距离后,就可以构建一个简单的决策树分类器。

如上图所示,红色的那条线是提取出来的shapelets,分类过程就是计算数据集中每个实例到shapelets的距离,如果距离小于5.1它就被分为马鞭草,否则就是荨麻草。那么问题来了,分类阈值5.1哪来的?后面会讲这个问题,目前先放一放。

到目前为止读者会发现这种分类方法潜在的优点:
(1)shapelets能够提供可解释的结果,帮助分析人员更好的理解数据。这是其他机器学习和时序分类算法办不到的。
(2)shapelets有更强的鲁棒性/准确性。因为它是一种“局部特征”,比起那些“全局特征”的分类算法,它的抗噪能力更强。
(3)shapelets比现有的分类方法更快。

2、相关工作和背景

符号表


比较简单的概念就不详细写了。

定义1:时间序列

m个实值的有序集。

定义2:子序列

定义3:滑动窗口

定义4:时间序列之间的距离

使用某种距离计算方法返回两个长度相同的序列之间的距离,比如使用欧氏距离或DTW。

定义5:时间序列和子序列之间的距离

所有长度和待测子序列一致的子序列中距离最小的那一个。

如图中,现在原序列中匹配到和子序列最佳的位置,再计算距离。

定义6:信息熵

定义7:信息增益

定义8:最佳分裂点

这个地方就是前面提到分裂阈值如何取的问题。就是在这个阈值处进行划分所获得的信息增益要大于任何其他点,这个阈值(距离值)就是最佳分裂点。所以说使用shapelets时包括两个步骤,寻找shapelets和相应的最佳分裂点。

定义9:shapelets

在shapelets和它对应的最佳分裂点处产生的信息增益要大于任何其他子序列和其他分裂点的信息增益。说白了shapelets就是一个具有区分能力的子序列和一个最佳的分裂阈值,拿这一组东西去分类会产生最佳效果(最大信息增益)。下文会介绍如何寻找shapelets和对应的最佳分裂点,以及如何构造一颗决策树。

3、蛮力法寻找shapelets

最简单的方法就是使用蛮力算法进行寻找,但这种方法在实际中并不可行,时间复杂度太高了,必须配合相应的加速技术。这里只是为了介绍它的算法思想。

算法程序入上图:
给定一个数据集D,给定shapelets的最大和最小长度,最小长度可以为1,最大长度为数据集D中长度最小的序列对应的长度。数据集D中每个序列对应一个类别A或B。第一行生成了所有子序列的候选集,存储在一个列表中。具体做法其实是使用MAXLEN和MINLEN之间所有长度的滑动窗口去截数据集中所有的序列,相当于子序列的一个全集。第二行将最大信息增益bsf_fain赋值为0;接下来3到7行,使用候选集candidates中的每个子序列去分类,寻找分类效果最好的那一个,也就是信息增益最大的那一个便是shapelets。最佳分裂点的选择具体如下图:

假设现在在候选集canditates中拿出一个子序列s,然后将s和数据集D中所有序列的距离计算出来然后排序。如上图中数轴所示,数轴上值代表候选序列和数据集D中序列的距离,蓝色圆形和红色正方形代表两个不同类别,红色虚线箭头所指地方就是最佳分裂点,寻找它的过程是从左到右每相邻两个点之间的均值作为分裂点都计算信息增益,选最大的那个。

上图是生成候选集的过程,就是上面讲过的用户滑动窗口截就行了。

上图是计算每个候选集的信息增益。第一行是寻找最佳分裂点,然后数据集中距离小于阈值的分到D1集合,大于的分到D2集合,分完后计算增益返回。
寻找一个shapelets的蛮力方法就是这样,可以看到复杂度是相当高的。

4、子序列距离早弃

在寻找shapelets中大多数计算量集中在计算子序列和序列的距离上。我们需要的是子序列之间的最小距离而不是所有距离,因此一直当前是最小距离时就可以停止计算。这个方法叫早弃,非常简单但十分有效。
后面部分以后再更新

时间序列:Shapelets相关推荐

  1. shapelet论文相关

    标题:ShapeNet: A Shapelet-Neural Network Approach forMultivariate Time Series Classification(AAAI2021) ...

  2. Efficient Shapelet Discovery for Time Series Classification(TKDE)

    时间序列shapelets是一种鉴别子序列,近年来被发现用于时间序列分类(TSC).很明显,shapelets的质量对TSC的准确性至关重要.然而,主要的研究集中在从一些候选shapelet中建立精确 ...

  3. Adversarial Dynamic Shapelet Networks(AAAI2020)

    Shapelets是时间序列分类的判别子序列.近年来,提出了用梯度下降法直接学习时间序列shapelets (LTS).虽然基于学习的shapelet方法取得了比以往方法更好的效果,但它们仍然存在两个 ...

  4. 浙江大学副教授杨洋——《Time2Graph:从图视角出发的时间序列建模》

    ⬆⬆⬆ 点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 2020 年 9 月 25 日,在由中国科协主办,清华大学计算机科学与技术系.AI TIME 论道承办的<2020 中国科 ...

  5. 【时间序列】ICDE 2021丨时间序列相关研究论文汇总

    IEEE ICDE(IEEE International Conference on Data Engineering)是 IEEE 的旗舰会议,和 SIGMOD.VLDB 并称数据库领域三大顶会,旨 ...

  6. 基于 Mixup 数据增强的 LSTM-FCN 时间序列分类学习记录

    摘要 在时间序列分类任务中,针对时间序列数据少和多样性导致深度学习模型准确率不高的问题,提出 Mixup 数据增强的长短期记忆网络–全卷积网络LSTM-FCN)时间序列分类算法.该算法首先使用 Mix ...

  7. 用于时间序列异常值检测的全栈机器学习系统

    在本文中,我想介绍一个开源项目,用于构建机器学习管道以检测时间序列数据中的异常值.本文将简要介绍三种常见的异常值以及相应的检测策略.然后将提供基于两个支持的 API 的示例代码:用于开发时间序列异常值 ...

  8. 时间序列分类算法_时间序列分类算法简介

    时间序列分类算法 A common task for time series machine learning is classification. Given a set of time serie ...

  9. python时间序列峰值检测_如何检测和过滤时间序列数据的峰值?

    我有一个pandas用户登录数据框,如下所示:id datetime_login 646 2017-03-15 15:30:25 611 2017-04-14 11:38:30 611 2017-05 ...

最新文章

  1. java.lang类在电脑哪个位置_Java中的java.lang.Class API 详解
  2. 插件和代码两种方法搞定WordPress回复邮件通知
  3. python之父去面试-面试题_个人文章 - SegmentFault 思否
  4. python实体类dict to object
  5. python右对齐格式化输出_Python中格式化输出的两种方法介绍
  6. Web测试到底是在测什么(资料合集)
  7. 解决Android学习之ScollView嵌套ListView和GridView问题
  8. 关于SQL Server自动备份无法删除过期的备份文件奇怪现象
  9. 大部分人其实根本就不上进,他们只是表现的很努力
  10. 企业创新流程的“正向推”与“反向推”思考
  11. Jquery—JQuery对radio的操作(01)
  12. APT级全面免杀与企业纵深防御体系的红蓝对抗
  13. c++ opencv 读取文件夹里所有图片
  14. Microsoft Teams 创建Outlook邮件组的Team
  15. 关于ubuntu上,usb设备编号
  16. Ubuntu12.10 GT650M 混合显卡/双显卡驱动安装
  17. js中关于0.1+0.1不等于0.2 ,而console.log(0.1)是0.1,面试01
  18. 一文学会Webpack实用功能|加载器篇
  19. 阿里云轻量服务器怎么设置密码?
  20. 2018年诺贝尔经济学奖揭晓!两位美国教授获奖

热门文章

  1. 贵阳中天会展城A10大平层350平米户型装修设计效果图
  2. 神奇的Python图片处理库exifread
  3. oracle全角改半角,Oracle全角数字转换半角数字
  4. 自学python能不能找到工作,学会了python好找工作吗
  5. java.lang.IllegalArgumentException: At least one base package must be specified
  6. 【第三方互联】4、分享至腾讯QQ、新浪微博(sina)
  7. 胆囊结石在我们的生活中有哪些危害呢?
  8. 网页三维地图技术初探
  9. 2020美团笔试题目:送餐小区数量
  10. 【电子学会】2022年12月图形化一级 -- 和平使者