更新:
2020/09/02:新增一篇写的很好的关于视频监控异常检测的学报http://jst.tsinghuajournals.com/CN/rhhtml/20200609.htmjst.tsinghuajournals.com
一. 介绍
异常检测(Anomaly detection)是目前时序数据分析最成熟的应用之一,定义是从正常的时间序列中识别不正常的事件或行为的过程。有效的异常检测被广泛用于现实世界的很多领域,例如量化交易,网络安全检测、自动驾驶汽车和大型工业设备的日常维护。以在轨航天器为例,由于航天器昂贵且系统复杂,未能检测到危险可能会导致严重甚至无法弥补的损害。异常随时可能发展为严重故障,因此准确及时的异常检测可以提醒航天工程师今早采取措施。
1.1 判断异常的方法异常类型:异常检测:
- 直接检测:针对点异常,直接定位离群点
- 间接检测:上下文或集合异常先转化成点异常,然后再求解
时间跨度: ARIMA, MA, 回归模型,指数光滑等
序列跨度:许多传感器应用程序产生的时间序列通常彼此紧密相关。例如,在一个传感器上的鸟叫通常也会被附近的传感器记录下来。在这种情况下,经常可以使用一个序列来预测另一个序列。与此类预期预测的偏差可以报告为异常值。隐式马尔科夫链HMM等
1.2 ARIMA类算法详解:预处理
a) 对于纯随机序列,也称为白噪声序列,序列的各项之间没有任何的关系, 序列在进行完全无序的随机波动, 可以终止对该序列的分析。
b) 对于平稳非白噪声序列, 它的均值和方差是常数。ARMA 模型是最常用的平稳序列拟合模型。
c) 对于非平稳序列, 由于它的方差和均值不稳定, 处理方法一般是将其转化成平稳序列。 可以使用ARIMA 模型进行分析。预处理流程建模
a) AR 自回归模型:描述当前值与历史值之间的关系, 用变量自身的历史时间数据对自身进行预测。自回归模型必须满足平稳性的要求。
公式定义:
自回归模型的限制:
1.自回归模型是使用自身的数据进行预测的
2.必须具有平稳性
3.必须具有相关性,如果相关性小于 0.5 , 则不宜使用
4.自回归模型只适用于预测与自身前期相关的预测。
b) MA(移动平均模型):•移动平均模型关注的是自回归模型中的误差项的累加
•移动平均法能有效地消除预测中的随机波动。
c) ARIMA(p,d,q)差分自回归移动平均模型(Autoregressive Integrated Moving Average Model ,简称ARIMA)
自回归和移动平均的结合。
AR 是自回归, p 是自回归项, MA 是移动平均, q 为移动平均项, d 为时间序列称为平稳时 所做的差分次数。
原理: 将非平稳时间序列转换成平稳时间序列, 然后将因变量仅对它的滞后值(p阶)以及随机误差项的现值和滞后值进行回顾所建立的模型。实例:使用ARIMA 模型对某餐厅的销售数据进行预测
#coding=gbk
#使用ARIMA 模型对非平稳时间序列记性建模操作
#差分运算具有强大的确定性的信息提取能力, 许多非平稳的序列差分后显示出平稳序列的性质, 这是称这个非平稳序列为差分平稳序列。
#对差分平稳序列可以还是要ARMA 模型进行拟合, ARIMA 模型的实质就是差分预算与 ARMA 模型的结合。
#导入数据
import pandas as pd
filename = r'D:\datasets\arima_data.xls'
data = pd.read_excel(filename, index_col = u'日期')
#画出时序图
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] #定义使其正常显示中文字体黑体
plt.rcParams['axes.unicode_minus'] = False #用来正常显示表示负号
# data.plot()