1.介绍

时间序列异常检测可以运用的地方:工业设备异常检测、欺诈检测,日志监控

目录

1.介绍


异常:一种与其他观测结果偏离甚大的观测结果,从而引起怀疑,属于其他的模式。

通常可以将异常的含义分为两类:

时间序列异构迁移学习 时间序列异常分析_数据

一类是不管不顾全部收集的数据:如调查本市的居民平均工资,应该将数据进行清洗,筛选掉首富的数据,让数据更能符合普通居民数据的分布。

另一类是有用的数据:获取一类数据,如机器运转,大部分是正常状态的数据,当遇到异常数据就可以提高注意。

在时间序列背景下的离群值检测技术的分类 

时间序列异构迁移学习 时间序列异常分析_异常检测_02

 离群值类型:

1.离群点是指在特定时间刻与其他时间序列中的其他值(全局)或者相邻点(局部)进行比较时,表现异常。

2.子序列异常值。是指在一段时间内的部分时间片段出现的异常。

时间序列异构迁移学习 时间序列异常分析_数据_03

3.时间异常序列:整个时间序列都可以是异常值,但只有当输入数据是多元时间序列时,才能检测到它们。 

时间序列异构迁移学习 时间序列异常分析_时间序列_04

3.点离群值

3.1单一变量时间序列

时间序列异构迁移学习 时间序列异常分析_时间序列异构迁移学习_05

最常见的异常点的定义就是 估计值 - 预测值 与 阈值 比较大小的关系 ,超过阈值定义为异常点。由此组成了 Model-based 的模型。

 Estimation(估计)和prediction(预测):区别在于data一个是估计用过去、现在和未来的数据而预测是使用过去的数据进行未来预测。

时间序列异构迁移学习 时间序列异常分析_异常检测_06

估计(Estimation models)模型:

基于常数或分段常数模型 例如获取数据的中位数 并用来作为 xˆt

预测模型(Predict models):

1.使用Lstm或者其他方法进行预测数据

2.使用滑动窗口进行预测

Density-based(基于密度)

时间序列异构迁移学习 时间序列异常分析_时间序列异构迁移学习_07

 d通常表示为欧式距离 , xt 需要被分析的数据  ,x 为 一系列的数据点   如果是一个estimation 的问题的的话 xt 就需要和 前后的进行估计并且让他们的和小于 τ 则为 异常点.

局域密度的方法通常用于非时期数据中,因为它更急倾向于领域的时间关系

局域密度的方法通常用于非时期数据中,因为它更急倾向于领域的时间关系

Histogramming 

这种方法是基于移除点之后误差比原始值更低来实现的

3.2多变量的时间预测
   含有多个时序有关的变量 但是不考虑这些变量之间的关系 最著名的就是LSTM

但是 单一时间变量会导致信息的损失 如何解决这个问题

-->  通过将这些元素进行预处理使得其变为 非相关变量

这些方法一般 都是通过降维来实现的

               其中一些降维技术是基于通过计算初始变量的线性组合来找到新的不相关变量集  例如:PCA 等等

               其他技术将输入的多元时间序列减少为一个单一的时间相关变量,而不是一组不相关的变量


时间序列异构迁移学习 时间序列异常分析_时间序列异构迁移学习_08

3.2.2   多变量处理的时序异常检测

时间序列异构迁移学习 时间序列异常分析_时间序列_09

在estimation model 中 auto-encoder(自动编码机)(一种神经网络,通过学习正常数据的训练集得到其中重要的特征,因为异常点通常属于另一种特征,所以无法进行重构)

 4.子序列异常

一般情况下异常是一系列的点

时间序列异构迁移学习 时间序列异常分析_时间序列异构迁移学习_10

 首先,子序列由一组点组成,而不是由一个点组成,因此它们有一定的长度。通常采用固定长度

其次就是损失函数的定义  相对一个点来说一个序列的损失函数更加难以定义。

最后就是输入输出的形式非常的受限制

周期子序列也是一个很重要的问题但是很少有人研究

4.1 单变量的子序列异常检测

时间序列异构迁移学习 时间序列异常分析_人工智能_11

直接寻找最不符合要求的一个,例如下图中表示出的01 和o2位置上出现的明显的discord

时间序列异构迁移学习 时间序列异常分析_异常检测_12

 这种方法一遍用于已经确定长度的案例中,但是上述的方法并不知道什么是正常的,同时不知道是否是异常 只能确定一段时间内最异常的那个。

5.异常检测方法:

1)直接检测:针对点异常,直接定位离群点,也称离群值检测。

2)间接检测:上下文或集合异常先转化成点异常,然后再求解

3)时间跨度检测: ARIMA, 回归模型,LSTM等,核心思想就是模型学习一段历史数据,然后预测, 通过比对真实值与预测值的偏差来判断是否为异常。

4)序列跨度检测:许多传感器应用程序产生的时间序列通常彼此紧密相关。例如,在一个传感器上的鸟叫通常也会被附近的传感器记录下来。在这种情况下,经常可以使用一个序列来预测另一个序列。与此类预期预测的偏差可以报告为异常值,如隐式马尔科夫链HMM等

6.时间序列的特征工程

6.1 非数值型变量处理方法

极值分析和统计算法依赖于统计量化,例如均值或者标准差,对于非数值型变量,这些统计量化将不再有意义;但通过一些改变我们就能非数值型变量转化成数值型变量。

  • 分布概率转化

就是变量不再默认服从特定分布(如高斯),而需要单独根据具体数据集定义概率分布(按比例),并按乘积方式与数值变量组合以创建单个多元分布。

  • 线性转化:

1.One-hot码二进制转换,一个值对应一个种类,但容易维度爆炸,且无法体现不同类别的不同权重。可以通过将每列除以其标准偏差(deviation)来进行归一化。

2.潜在语义分析(Latent Semantic Analysis)

  • 基于相似度量的转化:

1.基于数据的统计邻域计算相似度,比如文本变量中“红色”和“橙色”比“红色”和“蓝色”更相近,但要求人为区分属性值之间的语义关系。

6.2特征工程构造思路

时间序列异构迁移学习 时间序列异常分析_数据_13