一、异常检测
1.1 概念
异常检测是指识别出与正常数据不同的数据,与预期行为差异大的数据。因此异常检测一般都是不平衡的分类或聚类。
1.2 典型应用场景
其应用背景有很多,这里主要介绍故障检测。故障是指:当系统的某个特征参数发生了不可接受的偏移时,称系统发生了故障。故障检测就是判断系统是否发生了故障并判断故障的类型和硬件位置;
1.3 故障检测的简要介绍
故障可以分为两类:一类是预期故障,就是在故障模式库中存在的故障;另一类是非预期故障,这类故障客观存在,但是故障模式库中没有记录。前者往往存在对应的监测记录、特征描述和处理方法等先验信息,而后者则缺乏对应的先验信息,一般只有少量测试数据 (Test Data),没有对应的训练数据 (Training Data)。
预期故障的故障检测方法大体分为三类:基于模型的故障诊断方法、基于知识的故障诊断方法和数据驱动的故障诊断方法。
- 基于模型:基于模型的故障诊断方法所需要的先验信息全部来源于已知的模型结构和模型参数。它假设输入 / 输出数据符合某种模型结构,比如状态空间模型结构,而且模型的参数是已知的。具体的方法有故障检测滤波器 、诊断观测器 、对偶空间法等。基于模型的方法可以直接用于检测非预期故障,但是无法隔离非预期故障,因为基于模型的诊断方法大多认为所有的故障都是预期的
- 基于知识 :基于知识的故障诊断方法所需要的先验信息全部来源于知识规则库。它假设能够获得比较完善的知识规则库和对应的数据库。具体的方法有专家系统、人工神经网络和有向图等等。这些方法不需要诊断对象的精确动态模型,其核心思想就是将工程师、操作者以及维修人员所掌握的知识转换成监控诊断的规则,并且研制出故障诊断的在线集成化专家系统。其难点在于知识库的构建。
- 数据驱动 :数据驱动的故障诊断方法所需要的先验信息全部来源于离线训练数据。它假设数据的输入 / 输出模型的结构和参数是未知的,但是能够获得用于训练的正常数据。具体的方法包括多元统计分析,主元分析 (PCA, Principal Component Analysis) ,典型相关分析(CCA , Canonical Correlation Analysis)、偏最小二乘 (PLS, Partial Least SquareRegression ) 等等。这些方法直接以监控数据为基础,利用数据处理、多元统计和模式识别的技术进行故障诊断。
二、异常检测常用方法
这里引用一下别人的分类方法:原地址是https://blog.csdn.net/cyanPhoenix/article/details/112498721
大概可以分为这样3类。
2.1 基于度量准则的单分类器分类方法
2.1.1 统计学方法
也就是一种基于模型的方法,对数据的正常性做出假定。它们假定正常的数据对象由⼀个统计模型产⽣,而不遵守该模型的数据是异常点。统计学⽅法的有效性⾼度依赖于对给定数据所做的统计模型假定是否成立。
异常检测的统计学⽅法的⼀般思想是:学习⼀个拟合给定数据集的⽣成模型,然后识别该模型低概率区域中的对象,把它们作为异常点。
然而,这一概率测度本身也是一种度量准则。感觉有点类似于贝叶斯统计方法,先给出一个先验的统计模型,再根据后验信息判断是不是异常的。
2.1.2 基于相似度的方法
- 基于集群(簇)的检测,如DBSCAN等聚类算法。DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一个比较有代表性的基于密度的聚类算法。与划分和层次聚类方法不同,它将簇定义为密度相连的点的最大集合,能够把具有足够高密度的区域划分为簇,并可在噪声的空间数据库中发现任意形状的聚类。
- 基于距离的度量,如k近邻算法。k近邻算法的基本思路是对每一个点,计算其与最近k个相邻点的距离,通过距离的大小来判断。
它是否为离群点 - 基于密度的度量,如LOF(局部离群因⼦)算法。局部离群因子(LOF)算法与k近邻类似,不同的是它以相对于其邻居的局部