一.对于数据中的规律和隐含的语义,从数据里发现的模式或者结构可以提供很有价值的信息。
二.引入子序列有几个问题:
1.我们事先不知道哪一个子序列出现频率最高,所以我就需要考虑数据中每一个子序列,子序列的长度当然也是不知道的。现有的方法大都需要提供一个关于子序列长度的参数n,但这个参数事前也很难知道。
2.而且不同长度的子序列也可能属于同一模式,这里并非像字符串匹配问题那样要求作比较的两个字符串拥有相同的长度。
三.基于语法的压缩算法之所以适合模式的发现,原因有以下几点:
1.从庞大的数据里找出一些可以理解的小的规则集总是有意义的。
2.基于语法的方法更容易形成从数据到规则的映射。
3.基于语义的方法自然的考虑了所有可能的子序列。
四.语法推导:学习器需要从数据中推导出一些语法,这些数据可以是字符串、词组、树或是限定形式的图。
五.Sequitur的优势在于
1.它自动辨别重复出现的模式
2.辨别出的模式可以是任意长度
3.因为语法的推导是以一种增量的方式进行的,所以很适合流数据
六.论文算法构成
Step 1.预处理:
离散化:使用SAX,原因有三:1)降低的维数 2)满足距离的下界 3)等概率出现的符号
Step 2.Sequitur
Step 3.Post processing
1) 删除重叠子序列(trivial matches),文中定义只要重叠就串删除
2) 规则评估
- 出现频率最高
- 最长
- 变化(标准差)最大
- 新模式和已有模式之间重复的地方
七.整个算法的优劣
劣势:
SAX part: 相似的子序列可能会被映射到相似但是不一样的string里
Sequitur part:算法要求符号的完全匹配,找到的规则不是最小的
优势:
SAX part: O(n)
Sequitur part:O(n) 可以一次找到长度不同的模式
八.未来的工作
1.和一些现有方法做比较
2.在Post-processing这块对Motif进行精炼