一种基于OCSVM-KNN算法的离群数据检测方法及装置
文献发布时间:2023-06-19 09:30:39
技术领域
本发明涉及电测量设备检测相关领域,尤其涉及一种基于OCSVM-KNN算法的离群数据检测方法及装置。
背景技术
随着信息通信技术的快速发展,计算机技术、互联网技术逐步向各行业扩展应用,电测量设备检测实验室作为我国计量体系的重要组成环节,结合信息通信技术、计算机技术和互联网技术,建立互联互通的信息化检测实验室是未来的必然趋势。互联互通是指通过信息感知节点,按照约定的协议把终端设备(如传感器、执行器、嵌入式设备等)与互联网连接起来,进行信息交换与通信,以实现智能化识别、定位、跟踪、监控和管理的一种状态。先进技术的应用为信息通信开垦了一个新的沟通维度,但与此同时,实验室中各检测实验设备将产生大量的中间数据,这将很大程度上为实验室增加网络通信成本和系统控制的难度。
目前已有一些异常检测算法被提出,例如早期的基于统计的检测算法、基于距离的检测算法、基于密度的检测算法、基于神经网络的方法。在时序数据领域,异常检测的方法大部分都是基于模式识别与聚类进行异常检测,Schramm P等人提出了准确周期检测的非参数方法并引进了时间序列新的周期距离策略(Schramm P,Naroska E,Resch P,etal.A service gateway for networked sensor system.Pervasive Computing,IEEE,2004,3(1):66-74.)。相似地,Guinard D等人通过检测当前数据与预制数据模型之间是否存在较大差异,从而实现时序数据的异常检测(Guinard D,Trifa V.Towards the web ofthings:Web mashups for embedded devices[C]//Workshop on Mashups,EnterpriseMashups and Lightweight Composition on the Web(MEM 2009),in proceedings ofWWW(International World Wide Web Conferences),Madrid,Spain.2009:15.)。GuinardD等人后来引入了一个基于检测数据象征性版本的特定的重新排序策略(Guinard D,TrifaV,Wilde E.A resource oriented architecture for the web of things[C]//Internetof Things(IOT),2010.IEEE,2010:1-8.)。除了离线方法以外,还存在一些在线检测算法。Chandola V等人从多个时序数据生成了可理解的准确模型来进行异常检测(Chandola V,Banerjee A,Kumar V.Anomaly detection:A survey[J].ACM Computing Surveys(CSUR),2009,41(3):15.)。Knox E M等人利用时间序列位图来进行异常检测(Knox E M,Ng RT.Algorithms for mining distance_based outliers in large datasets[C]//Proceedings of the International Conference on Very Large Data Bases.1998:392-403.)。Hawkins D M等人设计了一个应用于大量遥感数据的新颖的异常检测系统(Hawkins D M.Identification of outliers[M].London:Chapman and Hall,1980.),该系统主要利用相关向量的回归和数据的自回归进行异常检测。
然而,基于统计的方法需要先验知识且不适合处理多维数据;基于频谱的方法主成分分析难度较大;基于SVM的改进算法能满足要求,但所针对的对象为数据向量,更适合于序列异常的检测;预测模型不适用于多维数据的处理。由于电测量设备检测实验室需要与检测设备、其他数据产生单元互联互通,电测量设备检测实验室控制系统需要与检测设备、数据产生单元实时通信,并进行相应控制,如果以现有技术方案,将电测量设备检测试验中产生的大量的过程数据都上传至实验室控制系统,将导致网络成本的大幅度增加,而且系统整体的实时性将无法很好保证,由于某些电测量检测设备需要对机械和运动进行控制,实时性差或者存在未检测到的离群数据,很可能会导致设备损坏或者安全事故。因此针对与电测量设备检测实验室的应用场景,要满足高可靠性,高实时性的要求,需要设计更适合的离群数据检测方法。
发明内容
针对现有技术中实时采集的数据总体质量低下、过程数据庞杂的问题,本发明提出一种基于OCSVM-KNN算法的离群数据检测方法以及检测装置,在更靠近数据源头产生的数据感知层,对数据进行分析与预处理,这将很大程度上提高实验室整体的数据分析处理能力,降低了对实验室控制系统中心节点的性能要求,节省实验室数据通信成本,使实验室具备分布式数据处理能力。
为达到上述目的,根据本发明的一个方面,提供了一种基于OCSVM-KNN算法的离群数据检测方法,包括步骤:
与电测量设备中的数据产生单元建立通信链路连接,采集各个所述电测量设备实时产生的检测数据流;
采用OCSVM算法进行第一次检测,从所述检测数据流中筛选出异常数据;
采用KNN算法进行第二次检测,以检测出离群数据;
将除离群数据之外的正常数据进行压缩上传,并向系统日志中写入离群数据信息;
根据所述离群数据信息,建立离群历史数据库;
将本次检测出的离群数据与所述离群历史数据库中的历史数据进行分析比对,并根据分析比对的结果输出推测的离群原因。
进一步的,所述检测数据流中包括过程数据、动力环境数据和控制数据。
进一步的,所述第一次检测之前,以预定长度的时间窗口对检测数据流中的过程数据进行截取,以获取一系列预定长度的时间序列,并基于所述时间序列进行检测。
进一步的,所述建立通信链路连接,包括通过WIFI、Zigbee、TCP/IP、RS485、以及蓝牙中的至少一种方式建立通信链路连接。
进一步的,还包括对检测结果和分析结果进行展示。
根据本发明的另一个方面,提供了一种基于OCSVM-KNN算法的离群数据检测装置,包括:接入层、业务层和本地应用层,所述接入层、业务层和本地应用层依次连接;其中,
接入层,与电测量设备中的数据产生单元建立通信链路连接,采集各个电测量设备实时产生的检测数据流;
业务层,采用OCSVM算法和KNN算法相融合的算法对离群数据进行检测,包括:
采用OCSVM算法进行第一次检测,从所述检测数据流中筛选出异常数据;
采用KNN算法进行第二次检测,以检测出离群数据;
将除离群数据之外的正常数据进行压缩上传,并向系统日志中写入离群数据信息;
根据所述离群数据信息,建立离群历史数据库;
将本次检测出的离群数据与所述离群历史数据库中的历史数据进行分析比对,并根据分析比对的结果输出推测的离群原因;
本地应用层,将离群数据的检测结果和分析结果进行展示。
进一步的,所述检测数据流中包括过程数据、动力环境数据和控制数据,对其中的过程数据进行离群检测。
进一步的,所述接入层包括通信接口模块、驱动模块和数据处理模块;其中,所述通信接口模块通过WIFI、Zigbee、TCP/IP、RS485、以及蓝牙中的至少一种方式与电测量设备中的数据产生单元建立通信链路连接。
进一步的,所述业务层包括业务逻辑处理模块和接口服务模块;其中,所述接口服务模块包括数据接口、控制接口和配置接口。
进一步的,所述本地应用层包括配置应用模块和数据展示模块。
综上所述,本发明提供一种基于OCSVM-KNN算法的离群数据检测方法以及检测装置。本发明的检测方法通过离群数据检测装置,在更靠近数据源头产生的数据感知层,对数据进行分析与预处理,在很大程度上提高实验室整体的数据分析处理能力,降低了对实验室控制系统中心节点的性能要求,节省实验室数据通信成本,使实验室具备分布式数据处理能力。本发明的检测装置对实验室中各实验设备网络通信数据进行分析,通过OCSVM-KNN算法完成异常数据识别与数据筛选,提高实验室通信数据完整性、准确性、规范性,节省网络资源,提高实验室控制系统的控制效率。
附图说明
图1是本发明数据异常检测基本模型;
图2是本发明基于OCSVM-KNN算法的离群数据检测方法的流程图;
图3是本发明基于OCSVM-KNN算法的离群数据检测装置的整体架构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
术语解释:
OCSVM(one class support vector machine)即单类支持向量机,该模型将数据样本通过核函数映射到高维特征空间,使其具有更良好的聚集性,在特征空间中求解一个最优超平面实现目标数据与坐标原点的最大分离。
KNN(K-NearestNeighbor,K最近邻)是通过测量不同特征值之间的距离进行分类。它的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。KNN算法中,所选择的邻居都是已经正确分类的对象。该分类方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。
下面结合附图对本发明的技术方案进行详细说明。本发明所基于的离群数据检测方法的基本原理如下:离群数据检测方法首先对相应的传感数据以“时间序列”的形式进行表示,并建立传感数据异常检测模型;然后利用单源时间序列自身的连续性以及多源时间序列之间的相关性,分别对实时传感数据中出现的数据异常进行有效检测,并分别形成相应的异常检测结果集;最后将上述2个异常检测的结果进行有机融合处理,从而得到更加准确的异常数据检测结果。
异常数据通常会包含潜在的有用信息,因此传感器数据的异常处理通常包含两方面:异常检测,针对单传感器数据流,利用异常检测算法实现异常检测;异常释义,针对异常检测中所检测出的异常,分析该异常可能产生的原因,寻找异常机制。数据异常检测基本模型如图1所示,包括终端数据采集模块、离群数据检测模块、综合检测模块和离群原因分析模块,其中,所述终端数据采集模块采集终端数据,所采集的终端数据输入至离群数据检测模块,在所述离群数据检测模块中利用异常检测算法实现异常检测,然后将数据输入至综合检测模块,综合检测模块,通常用于通过检测算法对异常数据进行第二次检测,确定离群数据,最后,在所述离群原因分析模块中针对异常检测中所检测出的异常,分析该异常可能产生的原因,寻找异常机制。
基于上述数据监测方法的原理,根据本发明的一个实施例,提供了一种基于OCSVM-KNN算法的离群数据检测方法,该检测方法的流程图如图2所示,包括步骤:
与电测量设备中的数据产生单元建立通信链路连接,采集各个所述电测量设备实时产生的检测数据流。其中,所述检测数据流中包括过程数据、动力环境数据和控制数据。具体来说,以预定长度的时间窗口对检测数据流中的过程数据进行截取,以获取一系列预定长度的时间序列,并基于所述时间序列进行检测。本发明的该实施例针对数据对象为电测量设备产生的数据流的情况,通过以预定长度的时间窗口对数据流进行截取,可取得一系列定长时间序列。在电测量设备检测实验室场景中,存储资源不受限,因此有部分历史数据存储,可借助历史时间序列实现对当前序列的检测。
采用OCSVM算法进行第一次检测,从所述检测数据流中筛选出异常数据;采用KNN算法进行第二次检测,以检测出离群数据。序列异常是指在模式上与其他正常序列存在区别的序列,异常处理主要包括异常检测和异常释义两方面,为了实现对异常序列的检测,并为异常释义提供依据,本发明首先对序列异常的模式进行区分。异常数据不同的产生原因将导致数据的不同变化,从而使得时间序列的模式有所区别。根据某些实施例,可以将序列划分为六种模式:噪声模式(两种)、上升突变模式、下降突变模式、其他异常模式和正常模式,其中上升突变模式和下降突变模式主要由人为操作或突发事件所导致。通过将待检测序列与己分类的序列模式进行匹配,可检测出该序列属于哪种模式,从而有助于综合检测模块进行深入异常分析。序列异常可认为是无序数据集的异常,在实验室实际使用场景中,序列集中异常序列所占的比例很小,正常与异常序列在数量上存在严重不平衡,采用OCSVM算法,由其实现异常检测,而不能完成模式的分类。因此本实施例中的离群数据检测方法采用两阶段互补算法,在第一阶段采用OCSVM实现序列粗分类,从正常序列中检测出异常序列,保证高检测率;第二阶段采用KNN算法实现细分类,完成异常模式的划分,并保证低误检率。
将除离群数据之外的正常数据进行压缩上传,并向系统日志中写入离群数据信息;根据所述离群数据信息,建立离群历史数据库;将本次检测出的离群数据与所述离群历史数据库中的历史数据进行分析比对,并根据分析比对的结果输出推测的离群原因。最后,对检测结果和分析结果进行展示。
根据本发明的另一个实施例,提供了一种基于OCSVM-KNN算法的离群数据检测装置,其具备丰富的通信接口资源,能够满足电测量设备检测实验室中多种有线、无线设备的接入。该离群数据检测装置的整体架构图如图3所示,包括:接入层、业务层和本地应用层,所述接入层、业务层和本地应用层依次连接。
接入层,与电测量设备中的数据产生单元建立通信链路连接,采集各个电测量设备实时产生的检测数据流。接入层主要实现数据感知节点的接入工作,包括通信接口模块、驱动模块和数据处理模块三部分,为设备的接入能力、易管理性、可扩展性和数据质量提供保障。通信接口屏蔽了传感器网络通信方式的异构性,实现检测装置与感知节点的交互,完成数据流的接收、发送。目前常用的通信方式有Wifi,Zigbee,TCP/IP,RS485,蓝牙等,检测装置将每一种通信方式抽象为通信类,并定义接口提升设备的可扩展性,并通过上述通信方式与电测量设备中的数据产生单元建立通信链路连接。驱动模块主要实现协议适配、数据解析等功能,针对各节点通信协议的不同,实现对底层异构性的适配,使得对驱动以上各层次而言,底层感知节点都是逻辑上无差别的设备资源,全由驱动将上层命令解析为与节点类型相关的指令。数据处理模块则是对感知节点所返回的数据包进行解析,提取数据信息,为数据的重封装和上传提供源数据。
业务层,是离群数据检测设备的核心模块,主要包括业务逻辑处理模块和接口服务模块。业务逻辑处理模块主要包括设备注册、设备状态检测、设备配置管理和发布订阅机制等,提供方便、高效的设备配置管理方法是设备网络通信的重点,本发明的离群数据检测主要通过该业务逻辑处理模块来实现,并在设备中实现异步通信机制。其中,业务逻辑处理模块用于实现离群数据检测,主要包括:采用OCSVM算法进行第一次检测,从所述检测数据流中筛选出异常数据;采用KNN算法进行第二次检测,以检测出离群数据;将除离群数据之外的正常数据进行压缩上传,并向系统日志中写入离群数据信息;根据所述离群数据信息,建立离群历史数据库;将本次检测出的离群数据与所述离群历史数据库中的历史数据进行分析比对,并根据分析比对的结果输出推测的离群原因。接口服务模块是实现资源共享的有效手段,通过提供统一的接口,实现数据资源的开放,设备应用可调用接口实现对数据感知节点的访问和控制。在该实施例中,主要提供三种接口类型:数据接口、控制接口、配置接口,通过在接口服务中加入缓存机制,提升数据与配置信息的访问速度。业务层为设备的实时性、鲁棒性、可扩展性、易管理性、广泛的可访问性提供了有力保证。
本地应用层,为方便管理者对设备的离线操作,并保证在设备不连接外网(或网络故障)的情况下,仍能实现对设备的配置和应用场景的控制,本实施例提供的离群数据检测装置架构中设置有本地应用层,主要包括本地的配置管理、数据展示、场景控制等小型应用,并可以将离群数据的检测结果和分析结果进行展示。本地应用层在一定程度上保证了设备的可扩展性和易管理性,主要通过调用接口服务的实现。
综上所述,本发明涉及一种基于OCSVM-KNN算法的离群数据检测方法以及检测装置,具备实时检测离群数据的能力,能够实时检测出实验数据中的离群数据,有效地避免了现有技术将实验中产生的大量过程数据全部上传至中心节点来做数据处理,节约了资源。并且与现有技术中的检测方式相比,更贴近数据产生源头,具有更加优秀的实时性,将OCSVM算法和KNN算法结合作为一个两阶段的互补算法,应用到电测量实验室试验数据异常检测中,提高了实验室通信数据完整性、准确性、规范性,节省网络资源,提高实验室控制系统的控制效率。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
- 一种基于OCSVM-KNN算法的离群数据检测方法及装置
- 一种基于YOLO-V3算法的船只遮挡检测方法及装置