什么是顺序异常技术?
顺序异常技术模拟了人类区分一系列看似相似对象中异常集合的方法。它有助于揭示数据中的隐式冗余。
给定一个包含 n 个对象的数据集 D,它构建一系列这些对象的子集 {D1, D2,..., Dm},其中 2 ≤ m ≤ n,包括
$$\mathrm{D_{j−1}\subset D_{j}\:\:其中\: D_{j}\subseteq D}$$
评估系列中子集之间的差异。该技术学习以下术语:
异常集 - 这是偏差或异常值的集合。它被定义为移除后导致剩余集合中差异最大程度降低的最小对象子集。
差异函数 - 此函数不需要对象之间的度量距离。给定一组对象,如果对象彼此相同,则返回低值。对象之间的差异越大,函数返回的值越高。
子集的差异是根据序列中前一个子集递增计算的。给定一个包含 n 个数字的子集 {x1,..., xn},一个可能的差异函数是集合中数字的方差
$$\mathrm{\frac{1}{n}\displaystyle\sum\limits_{i=1}^n (x_{i}-x^{'})^2}$$
其中 x' 是集合中 n 个数字的平均值。对于字符字符串,差异函数的设计可以是一个模式字符串(例如,包括通配符),可以涵盖迄今为止查看的所有模式。当涵盖 Dj−1 中某些字符串的模式不涵盖 Dj 中不在 Dj−1 中的某些字符串时,差异会增加。
基数函数 - 这通常是给定集合中多个对象的计数。
平滑因子 - 此函数是为序列中的每个子集计算的。它评估通过从初始对象集中消除子集可以减少多少差异。此值按集合的基数进行调整。平滑因子值最高的子集是异常集。
查找异常集的功能可能是 NP-hard(即难以处理的)。顺序方法在计算上是可行的,并且可以使用线性算法执行。
该算法不是评估当前子集与其补集相关的差异,而是选择一系列子集进行分析。对于每个子集,它确定该子集相对于序列中前一个子集的差异。