时间序列异常检测综述

2023-05-16

1.Introduction

时序异常检测几个可以运用的点:1.欺诈检测  2.工业数据检测

 

简介一下:异常检测很久之前就有了 最早可以追溯到. J. Fox. 1972. Outliers in Time Series. Journal of the Royal Statistical Society: Series B (Methodological) 34, 3 (1972), 350–363.

后来经过一段时间的混乱发展时期,现在已经发展基本成熟。离群点 和相关的概念确定的经典作品是  M. Hawkins. 1980. Identification of outliers. Springer Netherlands, New York.

一种与其他观测结果偏离甚大的观测结果,从而引起怀疑,认为它是由不同的机制产生的

通常可以将异常的含义分为两类:(其实就是拿到数据的作用不同,也就是基于我们分析的目的不同)

一类是废物数据,需要我们进行数据清洗  例如在调查普通国民平均收入的时候我们使用这种技术来排除马云等人的工资,得出普通老百姓的工资

一类是有用的数据,是我们分析的数据      例如我们在调查贪官的时候,我们得到国民的平均收入之后,可能就要特别关注那些 收入很高的人 看看有没有贪官

2. A TAXONOMY OF OUTLIER DETECTION TECHNIQUES IN THE TIME SERIES CONTEXT

分类方式如上图  虽然这篇文章发表自ACM  但是我还是觉得这种分法有点奇怪。。。、

 

Outlier type:(大家可能对 subsequence 和 time series 产生一定的误解)

   1.点离群点是指在特定时间瞬间与时间序列中的其他值(全局离群点)或与其相邻点(局部离群点)进行比较时,表现异常的基准)。 可以使一个或多个时间变量组成

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

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

3. Point Outliers

这部分介绍分为单元 和 多元 就像上图锁分类的一样  特别的是否含有时序信息也将作为重要的影响因素被考虑在内(评判标准:是否可以实时处理数据)

3.1 单一变量时间序列

 

 

最常见的异常点的定义就是 估计值 - 预测值 与 阈值 之间的关系 由此组成了 Model-based 的模型
              Estimation  和 prediction  :区别在于 data 一个是Estimation 用来过去现在和未来的数据 而Prediction Model 是使用了过去的数据进行预测
 

Estimation models :

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

         2. 另一种方法就是识别不太符合模型的数据点 例如使用GMM    比较常见的几种方法就是 建立最大和最小的可能区间,设立一个阈值  或者是 分析多种模型的残差

Predict models:

         1. 把任务当成了一个单纯的预测任务 使用各种方法来预测

         2.考虑时间因素  例如使用滑动窗口的方式不断的预测和使用

         3. extreme value theory 使用我们预测过的数据进行 retrain   我们给出一个固定的风险 q  如果 Xt > q  我们就重新确定 q   , 就算会导致 q 会忽上忽下  

 其中一些基于预测的方法周期性地重新训练底层模型,或者每次新的点到达时。 因此,它们可以适应数据的演变。 然而,它们中没有一个应用增量模型学习方法,其中模型不是每次从零开始重建,而是使用接收到的新信息进行增量更新

 

Density-based

      通常的判断方法为

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

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

缺点:不同的time step 可能会导致出现对同一点的不同判断

 

Histogramming 

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

 

3.2多变量的时间预测

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

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

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

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

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

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

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

这个部分和之前的不一样的地方在于 不使用预先编码的数据而是直接使用数据进行处理

  同样的 在estimation model 中 auto-encoder(一种神经网络,它只学习作为正常参考的训练集的最重要特征,异常点通常与这些点没有直接的关系,所以会无法reconstruct) 是最常用的模型

上述公式(4) 是适用于prediction model-based 这一类别中的技术也将模型与多元时间序列相匹配,但期望值是根据过去的价值对未来作出的预测

 

dissimilarity-based methods
 

测量两个多元点之间的差异,这些方法通常不直接使用原始数据,而是使用不同的表示方法。

例如:用一个图表示数据,其中节点是序列的多元点,边是用径向基函数(RBF)计算的它们之间的相似度值)。

histogramming approach

 

通过将在与向量相同的时间戳处收集的测量值处理到多元时间序列。 与单变量情况类似,该方法旨在检测应该删除的向量,以便改进剩余数据的压缩表示(直方图。 作者提出了一种流系列和非流系列的算法来寻找近似最优偏差。

 

4.子序列异常

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

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

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

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

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

 

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

discord
说白了就是直接寻找最不符合要求的一个
 

      例如下图中表示出的01 和o2位置上出现的明显的discord

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

dissimilarity-based 
 
                                                                                                                                                   s ( S , S ˆ ) > τ 
    
其中S是被分析的子序列或其表示,Sˆ是基于正态性的引用得到的S的期望值,s测量两个子序列之间的差异。 通常,S是固定长度的,非周期的,并通过滑动窗口提取。
 
我们可以使用聚类的方法将彼此相似的子序列分组,并将不同的子序列分离成不同的簇以及升级版 动态聚类
或者使用一个值其值指示它与其余子序列有多不同
 

下面这两种是附属的

 

External time series
有一些方法依赖于外部时间序列作为正态性的参考,假设它是由相同的底层过程生成的,但没有异常值。在这个类别中,我们还包括使用过去的非离群子序列作为正态性引用的技术。 即使这些子序列属于同一时间序列,这个集合也被认为是一个外部集合,其中没有检测到异常值,与以前的类别不同
 
Previous subsequence.
 
有一些技术只使用先前相邻的不重叠窗口来分析子序列作为正态性的引用,这意味着它们比其他窗口具有更多的局部视角。
 
 
 
prediction model-based
 
它假设正确性是由过去子序列组成的时间序列反映的,先预测然后进行比较

 
frequency-based
 
 

information theory
 
 

 
 
 
 
 
 
 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

时间序列异常检测综述 的相关文章

  • 解决JetPack4.2 自制载板无法开机

    使用下面方法会导致无法连接显示器 xff01 xff01 xff01 1 源码下载 https developer nvidia com embedded downloads 选择 L4T Sources 下载 L4T JAX and TX
  • Android开发技巧 (五) —— Lambda表达式

    Lambda表达式本质是一种匿名方法 xff0c 它既没有方法名 xff0c 也没有访问修饰符和返回值类型 xff0c 用它来写代码更简洁 xff0c 更易懂 Lambda是Java8的新特性 xff0c 所以要在app build gar
  • 树莓派4B安装ubuntu mate20 +putty和vncsever远程登录+安装ROS

    新买了树莓派4B xff0c 安装环境费了好大功夫 xff0c 终于找到一套可以用的方案 xff0c 记录一下 基本 xff1a 树莓派4B一块64G内存卡电源 显示器 鼠标 键盘 安装系统和换软件源 参考树莓派4B安装Ubuntu Mat
  • jsp医疗辅助诊断管理系统servlet开发mysql数据库web结构java编程计算机网页项目

    一 源码特点 JSP医疗辅助诊断管理系统是一套完善的java web信息管理系统 xff0c 对理解JSP java编程开发语言有帮助serlvet 43 dao 43 bean 模式开发 xff0c 系统具有完整的源代码和数据库 xff0
  • MATLAB2019a中文设置的一些说明

    MATLAB2019a中文设置的一些说明 问题 xff1a 今天打开matlab发现是英文的 xff0c 想要修改成中文 网上方法 xff1a preferences xff08 预设项 xff09 General xff08 常规 xff
  • ERROR: Could not install packages due to an EnvironmentError: [Errno 13] 权限不够的解决办法

    关于错误 xff1a ERROR Could not install packages due to an OSError Errno 13 Permission denied 39 usr local label cn txt 39 Co
  • 每天进步一点点(一)

    1 说一下sram xff0c flash memory xff0c 及dram的区别 xff1f sram xff1a 静态随机存储 这里的静态是指这种存储器只需要保持通电 xff0c 里面的数据就可以永远保持 但是当断电之后 xff0c
  • GPS载频信号简述(L1、L2、L3、L5)

    L1 1575 42 1 023MHzL2 1227 60 1 023MHz L3 用途和频率暂未公开 资料显示其用于发现核爆炸或其他高能量红外辐射事件的核爆炸侦察系统 NDS 平台提供通讯联系 L5 1176 45 1 023MHz xf
  • Ajax详解及使用Ajax时的返回值类型有哪些?

    Ajax详解 Ajax 61 异步 JavaScript 和 XML Ajax 是一种用于创建快速动态网页的技术 通过在后台与服务器进行少量数据交换 xff0c Ajax 可以使网页实现异步更新 这意味着可以在不重新加载整个网页的情况下 x
  • ubuntu20.04双系统分区

    一 分四个区 xff0c 记录下 主分区和逻辑分区目前感觉没啥影响 但是有的电脑可能数量会有限制 boot引导分区 500M 交换分区 xff0c 16G及以下与内存大小一致 根目录 xff0c 如果要安装cuda之类的尽量50G以上吧 其
  • Vins-Fusion运行kitti,euroc和tum数据集并使用evo评估

    基于ubuntu18 04 VIns Fusion 1 修改程序输出位姿信息修改为TUM格式 为了方便评估 xff0c 先将程序的输出位姿信息修改为tum格式 xff0c 需要做如下改动 1 1 回环输出位姿文件pose graph cpp
  • JETSON ORIN NX 烧录系统镜像

    所需环境 xff1a Ubuntu 操作系统 本方法适用于SDKManager 找不到套件的情况 xff01 解决方法如下 xff1a 进入NVIDIA官网 xff08 Jetson Linux 35 2 1 NVIDIA Develope
  • 解决Komodo上自带D435可以打开而外接D435i打不开的原因

    解决Komodo上自带D435可以打开而外接D435i打不开的原因 因为Komodo上装的realsense SDK 和realsense ros版本不对应以及版本太低的原因 xff0c 所以各种问题 按照realsense和realsen
  • C++泛型编程,标准模板库(STL)

    C 43 43 的特点就是添加了面向对象和泛型 面向对象是用类实现的 xff0c 泛型是用模板实现的 xff0c C 43 43 的标准模板库 STL 是泛型一个实例 xff0c 已经被集成到C 43 43 xff0c STL是一些常用的数
  • [工程编写]CMakeLists.txt 如何编写

    最近开始写一些SLAM工程 xff0c 所以对涉及到的内容做一些整理 xff0c 那么要做的第一件事情就是编写一个CMakeLists txt 本文那任乾大佬在知乎关于雷达自动驾驶SLAM的工程距离 1 信息指定 cmake版本确定 xff
  • 在执行 pip install 时遇到错误: ERROR: Complete output from command python setup.py egg_info:

    在执行 pip install 时遇到错误 xff1a pip install U docker compose ERROR Complete output from command python setup py egg info ERR
  • 树莓派登录问题

    在使用树莓派的过程中 xff0c 多次遇到了开机后输入正确密码却被重复多次要求输入的情况 xff0c 在查看他人经验后 xff0c 总结出以下两种情况及可行的方法 不确定密码是否正确 参考博客 纸末 树莓派忘记密码的解决方法 1 xff0c
  • 什么是SDK和API?

    SDK xff1a 在搭建环境的时候知道的sdk xff0c 但并不知道有什么用 SDK Software Development Kit 翻译成中文就是 34 软体开发工具组 34 是用来帮一个 产品 或 平台 开发应用程式的工具组 xf
  • 华为开发者大会总结——个人总结

    方舟编译器 xff08 开源 xff09 xff1a 干掉Java虚拟机 将java代码直接编译成机器码 xff0c 静态语义好编译 xff0c 核心是静态编译出动态语义 xff08 通过华为编译实验室的核心专利 xff09 xff0c 代

随机推荐

  • LoRa关键参数 1、扩频因子(SF) 2、编码率(CR) 3、信号带宽(BW) 4、LoRa信号带宽BW、符号速率Rs和数据速率DR的关系 5、

    LoRa 学习 xff1a LoRa 关键参数 xff08 扩频因子 xff0c 编码率 xff0c 带宽 xff09 的设定及解释 1 扩频因子 xff08 SF xff09 2 编码率 xff08 CR xff09 3 信号带宽 xff
  • MarkDown的语法

    使用MarkDoown时应该注意些什么呢 目录 一 添加标题 二 引用代码块 三 嵌入图片 1 本地图片 2 互联网图片 四 快捷键使用 五 分界线的使用 一 添加标题 在文字前加入相应数量的 一级标题 二级标题 三级标题 四级标题 五级标
  • python试爬李毅吧贴子标题,爬虫最初级

    注 xff1a 以下所有python代码均运行于2 7 0 最近想抓点数据存起来 xff0c 开始捣鼓python 爬虫技术以前没接触过 xff0c 这一回就当练手 xff0c 从零开始 xff0c 从最原始的方式开始 先定个小目标 xff
  • Activity的生命周期

    图来自百度百科 onCreate 启动activity时被调用 xff0c 用于进行初始化操作 xff08 加载布局 绑定事件等 xff09 xff0c 不应在onCreate 中做过多的不必要操作 xff0c 避免造成打开activity
  • Activity的启动模式

    以下为读书笔记 xff1a 实际项目中 xff0c 我们要通过特定的需求 xff0c 为每个活动指定恰当的启动模式 Android一共有4种启动模式 xff1a standard singleTop singleTask singleIns
  • PID参数 Ziegler-Nichols基于时域响应曲线的整定 反应曲线法

    PID控制器是工业过程控制中广泛采用的一种控制器 xff0c 其中 xff0c P I D分别为比例 xff08 Proportion xff09 积分 xff08 Integral xff09 微分 xff08 Differential
  • 郑学坚《微型计算机原理及应用》考点精讲 36讲

    链接 xff1a https pan baidu com s 12 vGBRrjOd UtO8P4e9bow 提取码 xff1a tqmp 当初考研时买的网课 xff0c 现在也用不着了 xff0c 赠与有缘人 书籍记录着别人多年时光总结出
  • 几种常用排序算法

    排序算法代码如下 xff1a void Sort Algorithm Bubble Sort int amp nums const int len bool haschange 61 true for int i 61 0 i lt len
  • 四旋翼姿态解算

    代码思路如下 xff1a 姿态解算 void IMU update float dT imu state st state float gyr VEC XYZ s32 acc VEC XYZ s16 mag val VEC XYZ imu
  • 树莓派4B-基于MCP2515的CAN通信过程记录篇

    本文主要记录使用树莓派4B xff0c 通过外接MCP2515模块来实现CAN通信 xff0c 使用基于Can utils实现CAN消息的收发 准备工作 xff1a 树莓派MCP2515模块杜邦线若干 知乎上一篇较为详细的参考 xff0c
  • nuxt踩坑集

    目录结构 assets 资源文件 用于组织未编译的静态资源如 LESS SASS或 JavaScript components 组件 layouts page 模板页面 xff0c 默认为 default vue可以在这个目录下创建全局页面
  • 记录个人在安装D435i驱动时出现的问题及解决方案

    目录 1 驱动安装 xff1a 2 启动Intel RealSense Viewer后报错No Frames Recevied 3 Record时报错Error opening file 1 驱动安装 xff1a 参考这篇博客 xff1a
  • 深度学习常见的优化算法

    文章目录 1 梯度下降算法 xff08 batch gradient descent BGD 2 随机梯度下降法 xff08 Stochastic gradient descent SGD 3 小批量梯度下降 Mini batch grad
  • vscode如何链接github

    1 首先安装配置好vscode xff1a https code visualstudio com download 然后下载git xff1a https git scm com download 根据自己的电脑选择相应的版本的下载就好了
  • 串口(uart)开发流程

    UART概述 UART全称 xff0c Universal Asynchronous Receiver and Transmitter UART xff0c 一般是每个单片机或开发板必备的一个功能模块 xff0c 可以用来调试 xff0c
  • *33.硬中断和软中断是什么?区别?

    1 硬中断 硬件中断 像磁盘 xff0c 网卡 xff0c 键盘 xff0c 时钟等 2 软中断 软件中断 进程产生 区别 xff1a xff08 产生机制 处理顺序 可否屏蔽 中断信号由来 xff09 1 软中断的发生的时间是由程序控制的
  • gazebo学习时遇到的问题(PX4篇)

    最近在研究如何使用UAV xff0c 由于是初学者 xff0c 不好直接上手实体无人机 xff0c 因此考虑通过在gazebo中模拟的方式进行一下无人机的简单使用模拟 xff0c 于是了解到了PX4这个东西 xff0c 他不仅支持固件写入
  • 阿里云服务器的搭建和部署(小白教程)

    阿里云服务器的搭建和部署 xff08 小白教程 xff09 一 购买服务器二 管理云服务器三 环境配置1 JDK的配置与下载2 tomcat的配置与下载3 MySQL的安装与配置 四 外网访问服务器 个人推荐阿里云 因为里面有一个大学生的云
  • 一篇带你搞懂Python3 中的 def __init__

    在学习python 100 days时 xff0c 在面向对象编程基础的那一块 xff0c 封装一个class时 xff0c 突然出现def init 的方法 xff0c 刚开始时 xff0c 对他的理解很模糊 xff0c 为什么定义一个类
  • 时间序列异常检测综述

    1 Introduction 时序异常检测几个可以运用的点 xff1a 1 欺诈检测 2 工业数据检测 简介一下 xff1a 异常检测很久之前就有了 最早可以追溯到 J Fox 1972 Outliers in Time Series Jo