CN114860543A - 异常检测方法、装置、设备与计算机可读存储介质 - Google Patents
异常检测方法、装置、设备与计算机可读存储介质 Download PDFInfo
- Publication number
- CN114860543A CN114860543A CN202210503845.7A CN202210503845A CN114860543A CN 114860543 A CN114860543 A CN 114860543A CN 202210503845 A CN202210503845 A CN 202210503845A CN 114860543 A CN114860543 A CN 114860543A
- Authority
- CN
- China
- Prior art keywords
- detected
- data
- data set
- point
- historical sample
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/243—Classification techniques relating to the number of classes
- G06F18/24323—Tree-organised classifiers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Bioinformatics & Computational Biology (AREA)
- Quality & Reliability (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Biology (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Testing And Monitoring For Control Systems (AREA)
Abstract
本发明公开了一种异常检测方法、装置、设备与计算机可读存储介质,属于运维技术领域。本发明通过获取待检测数据点,并基于待检测数据点,获取对应的历史样本数据集,对历史样本数据集进行处理,得到处理后的训练数据,将待检测数据点添加到所述训练数据中,得到待检测数据集,采用构建二叉树的方式对所述待检测数据集进行运算,并输出检测结果。通过待检测数据点的时间戳选取样本数据,使得原有的二维时序数据变为了一维的数值,但是并未丢失其时间的特性,有效降低了后续构建二叉树时运算复杂度,节省了计算资源,同时能够准确地对运维场景下的异常点进行检测。
Description
技术领域
本发明涉及运维技术领域,尤其涉及异常检测方法、装置、设备与计算机可读存储介质。
背景技术
随着互联网技术的发展,互联网云盘业务也发生了井喷式的增长。对于全量业务指标的监控,已经不能继续采用传统的编制规则的方法去实现,采用人工智能和机器学习算法去完成全量业务指标的监控,越来越成为行业的趋势。
相关技术中,常常会使用孤立森林算法来进行异常数据的监控,然而孤立森林算法的本身,只给出了一种通用的实现方式以及理论的效果,在实际的工程落地实践中,还面临诸多问题,需要结合具体的场景给出具体的解决方案。因此,针对运维管理这一应用场景,还不能实现对异常数据的自动检测。
发明内容
本发明的主要目的在于提供一种异常检测方法、装置、设备与计算机可读存储介质,旨在解决现有技术无法针对运维场景进行数据异常检测的问题。
为实现上述目的,本发明提供一种异常检测方法,所述异常检测方法包括以下步骤:
获取待检测数据点;
基于所述待检测数据点,获取对应的历史样本数据集;
对所述历史样本数据集进行处理,得到训练数据;
将所述待检测数据点添加到所述训练数据中,得到待检测数据集;
采用构建二叉树的方式,对所述待检测数据集进行运算,并输出检测结果。
可选地,所述基于所述待检测数据点,获取对应的历史样本数据集的步骤包括:
获取所述待检测数据点对应的时间戳;
选择W个数据集窗口,其中W为大于等于1的正整数;
基于所述时间戳,确认每个数据集窗口的中心点;
以所述中心点为基准,向前取M个数值以及向后取N个数值,得到一个包含(M+N+1)*W个样本数据的历史样本数据集,其中N,M为大于零的正整数。
可选地,所述对所述历史样本数据集进行处理,得到训练数据的步骤包括:
对所述历史样本数据集进行分类统计,得到重复数据集和普通数据集;
获取所述重复数据集中的重复数值,并使用预设公式Ki=K-1/2+i*(n+1)对所述重复数值进行替换,得到训练数据集;其中,i=1,2,…,n,代表有n个重复数值为K的重复数据,Ki为将所述n个重复数值为K的数据替换后得到的数值。
可选地,所述采用构建二叉树的方式,对所述待检测数据集进行运算,并输出检测结果的步骤包括:
在所述待检测数据集中待检测数据的最小值与最大值之间,生成随机浮点数;
以所述随机浮点数为参照,将所述待检测数据集分为第一子集和第二子集;
对所述第一子集和所述第二子集进行相同的递归操作,直到满足递归停止条件,得到对应的根节点;
计算所述待检测数据点到所述根节点的距离;
基于预设运行次数,重复执行在所述待检测数据集中待检测数据的最小值与最大值之间,生成随机浮点数,以所述随机浮点数为参照,将所述待检测数据集分为第一子集和第二子集,对所述第一子集和所述第二子集进行相同的递归操作,直到满足递归停止条件,得到对应的根节点,计算所述待检测数据点到所述根节点的距离的步骤,生成与所述预设运行次数对应的距离集合;
基于所述距离集合生成检测结果。
可选地,所述基于所述距离集合生成检测结果的步骤包括:
取所述距离集合的中位数,将所述中位数与预设判定值进行比较;
若所述中位数小于所述预设判定值,则判定所述待检测数据点为异常的离群点,并生成对应的检测结果。
可选地,所述基于所述距离集合生成检测结果的步骤之前,所述方法还包括:
根据预设公式和所述历史样本数据集的样本个数,计算得到与所述待检测数据点对应的所述预设判定值;其中,所述历史样本数据集是通过获取所述待检测数据点对应的时间戳;选择W个数据集窗口,其中W为大于或等于1的正整数;基于所述时间戳,确认每个数据集窗口的中心点;以所述中心点为基准,向前取M个数值以及向后取N个数值构建得到的,所述历史样本数据集包含(M+N+1)*W个样本,其中N,M为大于零的正整数(M+N+1)*W个样本数据的所述历史样本数据集,其中N,M为大于零的正整数。(M+N+1)*W个样本数据的所述历史样本数据集,其中N,M为大于零的正整数。
可选地,所述采用构建二叉树的方式,对所述待检测数据集进行运算,并输出检测结果的步骤之后,所述方法还包括:
若所述检测结果为异常点,则生成告警信息;
发送所述告警信息给运维管理人员。
此外,为实现上述目的,本发明还提供一种异常检测装置,所述装置包括:
获取模块,用于获取待检测数据点;
样本模块,用于基于所述待检测数据点,获取对应的历史样本数据集;
预处理模块,用于对所述历史样本数据集进行处理,得到训练数据;
数据集构建模块,用于将所述待检测数据点添加到所述训练数据中,得到待检测数据集;
检测模块,用于采用构建二叉树的方式,对所述待检测数据集进行运算,并输出检测结果。
可选地,所述样本模块还用于:
根据预设公式和所述历史样本数据集的样本个数,计算得到与所述待检测数据点对应的所述预设判定值;其中,所述历史样本数据集是通过获取所述待检测数据点对应的时间戳;选择W个数据集窗口,其中W为大于或等于1的正整数;基于所述时间戳,确认每个数据集窗口的中心点;以所述中心点为基准,向前取M个数值以及向后取N个数值构建得到的,所述历史样本数据集包含(M+N+1)*W个样本,其中N,M为大于零的正整数(M+N+1)*W个样本数据的所述历史样本数据集,其中N,M为大于零的正整数。(M+N+1)*W个样本数据的所述历史样本数据集,其中N,M为大于零的正整数。
可选地,所述预处理模块还用于:
对所述历史样本数据集进行分类统计,得到重复数据集和普通数据集;
获取所述重复数据集中的重复数值,并使用预设公式Ki=K-1/2+i*(n+1)对所述重复数值进行替换,得到训练数据集;其中,i=1,2,…,n,代表有n个重复数值为K的重复数据,Ki为将所述n个重复数值为K的数据替换后得到的数值。
可选地,所述检测模块还用于:
在所述待检测数据集中待检测数据的最小值与最大值之间,生成随机浮点数;
以所述随机浮点数为参照,将所述待检测数据集分为第一子集和第二子集;
对所述第一子集和所述第二子集进行相同的递归操作,直到满足递归停止条件,得到对应的根节点;
计算所述待检测数据点到所述根节点的距离;
基于预设运行次数,重复执行在所述待检测数据集中待检测数据的最小值与最大值之间,生成随机浮点数,以所述随机浮点数为参照,将所述待检测数据集分为第一子集和第二子集,对所述第一子集和所述第二子集进行相同的递归操作,直到满足递归停止条件,得到对应的根节点,计算所述待检测数据点到所述根节点的距离的步骤,生成与所述预设运行次数对应的距离集合;
基于所述距离集合生成检测结果。
可选地,所述检测模块还用于:
取所述距离集合的中位数,将所述中位数与预设判定值进行比较;
若所述中位数小于所述预设判定值,则判定所述待检测数据点为异常的离群点,并生成对应的检测结果。
可选地,所述检测模块还用于:
根据预设公式和所述历史样本数据集的样本个数,计算得到与所述待检测数据点对应的所述预设判定值;其中,所述历史样本数据集是通过获取所述待检测数据点对应的时间戳;选择W个数据集窗口,其中W为大于或等于1的正整数;基于所述时间戳,确认每个数据集窗口的中心点;以所述中心点为基准,向前取M个数值以及向后取N个数值构建得到的,所述历史样本数据集包含(M+N+1)*W个样本,其中N,M为大于零的正整数(M+N+1)*W个样本数据的所述历史样本数据集,其中N,M为大于零的正整数。(M+N+1)*W个样本数据的所述历史样本数据集,其中N,M为大于零的正整数。
可选地,所述检测模块还用于:
若所述检测结果为异常点,则生成告警信息;
发送所述告警信息给运维管理人员。
此外,为实现上述目的,本发明还提供一种异常检测设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的异常检测程序,所述异常检测程序配置为实现如上所述的异常检测方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有异常检测程序,所述异常检测程序被处理器执行时实现如上所述的异常检测方法的步骤。
本发明实施例提出的异常检测方法、装置、设备与计算机可读存储介质,通过获取待检测数据点,并基于待检测数据点,获取对应的历史样本数据集,再对历史样本数据集进行处理,得到处理后的训练数据,将待检测数据点添加到所述训练数据中,得到待检测数据集,采用构建二叉树的方式对待检测数据集进行运算,并输出检测结果,能够实现实时地对异常点进行监测,满足运维场景下的异常点检测需求。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的异常检测设备的结构示意图;
图2为本发明异常检测方法第一实施例的流程示意图;
图3为本发明异常检测方法一实施例中步骤S30的细化流程示意图;
图4为本发明异常检测方法一实施例中基于距离集合生成检测结果的流程示意图;
图5为本发明异常检测装置一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的管理设备结构示意图。
如图1所示,该异常检测设备可以包括:处理器1001,例如中央处理器(CentralProcessing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对异常检测设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、数据存储模块、网络通信模块、用户接口模块以及异常检测程序。
在图1所示的异常检测设备中,网络接口1004主要用于与其他设备进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明异常检测设备中的处理器1001、存储器1005可以设置在异常检测设备中,所述异常检测设备通过处理器1001调用存储器1005中存储的异常检测程序,并执行本发明实施例提供的异常检测方法。
本发明实施例提供了一种异常检测方法,参照图2,图2为本发明异常检测方法第一实施例的流程示意图。
本实施例中,所述异常检测方法包括:
步骤S10,获取待检测数据点;
步骤S20,基于所述待检测数据点,获取对应的历史样本数据集;
步骤S30,对所述历史样本数据集进行处理,得到训练数据;
步骤S40,将所述待检测数据点添加到所述训练数据中,得到待检测数据集;
步骤S50,采用构建二叉树的方式,对所述待检测数据集进行运算,并输出检测结果。
本实施例异常检测方法用于中运维监控系统中,能够对各种类型的运维数据指标进行异常监控,通过实时采集待检测数据点,并通过二叉树的分类方法对待检测数据点进行异常判定,从而发现异常情况。
以下将对各个步骤进行详细说明:
步骤S10,获取待检测数据点;
在一实施例中,获取待检测数据点。通常每次只获取一个待检测数据点,并且是实时的获取,因为数据是不断在更新的,所以要对当前的指标不断采集检测。其中,对待检测数据点的类型不做限制,具体地,可以根据运维指标的监控需求进行选择,常见的一些指标如:响应率、响应数量、访问数量、访问延时。运维系统会实时统计各运维指标的数值,例如:统计每分钟平均延时,那么每分钟都有一个新的数值,进而得到一个指标曲线,需要对新的数值进行检测,假设正常的延时是10ms,某一分钟统计出来的平均延时为16ms,那么这在指标曲线上通常是一个偏高的异常点,我们需要的就是将异常点找出,从而发现运维中存在的问题。获取方法可以是通过检测系统的采集脚本或者由相关命令构成的采集器实时轮询采集。
步骤S20,基于所述待检测数据点,获取对应的历史样本数据集;
在一实施例中,根据待检测数据点获取对应的历史样本数据集。可以理解的,因为是实时的检测,所以只能用之前的数据对当前待检测数据点进行预测,可以将该指标的历史的数值作为参照,具体地,根据待检测数据点的类型和时间获取相关的历史样本数据,例如获取到该指标数值在过去的一个月的某个时间点通常在20~25,那么就可以得到该指标相关的数据集,进而根据数据集对新的待检测样本进行评估。其中,历史样本数据量可以根据实际需求进行选择。
步骤S30,对所述历史样本数据集进行处理,得到训练数据;
在一实施例中,将历史样本数据进行处理,得到处理后的训练数据。现有算法对于较多样本数据具有相同取值的场景,效果不佳。然而对于诸如互联网云盘业务的运维指标数据来说,训练样本中有较多相同数值是非常常见的,但重复样本数据在二叉树的划分中,会影响异常点分类的准确性,因此,对于相同数值需要进行预处理,具体地,可以采用删除部分数值,比如有两个1,那么删除一个,或者采用替换的方式,例如有6个为100的数据点,将其替换处理为100、100.1、100.2、100.3、99.9、99.8,从而得到数值均不重复的训练数据。
步骤S40,将所述待检测数据点添加到所述训练数据中,得到待检测数据集;
在一实施例中,当处理完历史样本数据后,将其与待检测数据点放在一起,作为待检测数据集。
步骤S50,采用构建二叉树的方式,对所述待检测数据集进行运算,并输出检测结果。
在一实施例中,通过构建二叉树,对待检测数据集进行运算,得到检测结果。二叉树是孤立森林算法中一种基本算法,孤立森林算法属非监督学习算法,不需要定义参数模型和进行历史训练样本,通过采用多次迭代的方式构建二叉搜索树。以下孤立森林算法原理进行简要说明:当二叉树达到限定高度或者仅剩一个样本,则算法收敛。否则,递归构建二叉搜索树,将小于当前根结点的样本放入左子结点,将大于当前根结点的样本放入右子结点。根据样本数据容量迭代重复创建二叉搜索树,并将生成的二叉树组成二叉树森林。计算森林中二叉树的路径长度,当二叉树森林构建完成后,就可以对样本进行预测了,预测过程就是对二叉搜索树进行递归中序遍历,记录从根结点到叶子结点的路径长度(距离),当森林中所有样本路径长度(距离)计算完毕后,可以运用统计学的方法计算得出所有数据样本期望值E(h(x))和方差S(h(x)),进而得到偏离期望和方差的异常数据点。因此,本实施例通过孤立森林算法,以构建二叉树对待检测数据集进行迭代计算,得到待检测数据点的检测结果,检测结果包括是异常点和不是异常点。
需要说明的是,对于不同运维指标(不同数据类型)需要分别构建二叉树,例如每分钟需要检测20个类型的数据点是否存在异常,则调用20次算法分别进行检测,并且根据数据类型的不同,相关参数会做出不同的设置和调整。
进一步地,在一实施例中,所述采用构建二叉树的方式,对所述待检测数据集进行运算,并输出检测结果的步骤包括:
步骤S51,在所述待检测数据集中待检测数据的最小值与最大值之间,生成随机浮点数;
步骤S52,以所述随机浮点数为参照,将所述待检测数据集分为第一子集和第二子集;
步骤S53,对所述第一子集和所述第二子集进行相同的递归操作,直到满足递归停止条件,得到对应的根节点;
步骤S54,计算所述待检测数据点到所述根节点的距离;
步骤S55,基于预设运行次数,重复执行在所述待检测数据集中待检测数据的最小值与最大值之间,生成随机浮点数,以所述随机浮点数为参照,将所述待检测数据集分为第一子集和第二子集,对所述第一子集和所述第二子集进行相同的递归操作,直到满足递归停止条件,得到对应的根节点,计算所述待检测数据点到所述根节点的距离的步骤,生成与所述预设运行次数对应的距离集合;
步骤S56,基于所述距离集合生成检测结果。
在一实施例中,在待检测数据集的最小值与最大值之间,生成随机浮点数,根据随机浮点数随机划分待检测数据集,将待检测数据集划分为左右两个,即第一子集和第二子集,并对左右两个数据集进行递归,当满足停止递归的条件:1)子集只剩下一个元素;2)子集剩下的元素具有相同的值,得到对应的根节点,并计算待检测数据点到根节点的距离。二叉树中任意两个节点都有且仅有一条路径,这个路径的长度叫这两个节点的距离,通过距离能够对异常点进行判定,可以理解的,异常点般都是非常稀有的,因此在树中会很快被划分到叶子节点。以预设的运行次数重复多次地对待检测数据集进行划分,递归操作,得到待检测数据点到根节点的距离集合,如果对该待检测数据点的距离集合取均值或者取方差值,判断距离集合的均值或方差值小于预设距离值,则该点是异常的。其中,预设运行次数,在实践中,推荐的取值为50。
本实施例通过获取待检测数据点,并根据待检测数据点获取对应的历史样本数据集,并对历史样本数据集进行处理,得到处理后的训练数据,将待检测数据点添加到所述训练数据中,生成待检测数据集,采用构建二叉树的方式,对待检测数据集进行运算,得到异常检测结果,实现了实时异常点的监测,能够满足运维场景下的异常点检测需求。
进一步地,基于本发明异常检测方法第一实施例,提出本发明异常检测方法第二实施例。
参照图3,图3为本发明异常检测方法一实施例中步骤S30的细化流程示意图,在第二实施例中,所述基于所述待检测数据点,获取对应的历史样本数据集的步骤包括:
步骤S21,获取所述待检测数据点对应的时间戳;
步骤S22,选择W个数据集窗口,其中W为大于或等于1的正整数;
步骤S23,基于所述时间戳,确认每个数据集窗口的中心点;
步骤S24,以所述中心点为基准,向前取M个数值以及向后取N个数值,得到一个包含(M+N+1)*W个样本数据的所述历史样本数据集,其中N,M为大于零的正整数。
在一实施例中,由于现有的算法并不提出样本点的选择方法。所有的机器学习算法,特别是无监督算法,训练样本数据集是非常重要的。针对互联网云盘的运维场景,大部分指标在全天的不同时段具有不同的数据特征,例如白天和晚上,走势图的取值有很大的波动。因此,需要提出科学有效的方法来选取训练样本数据集。因此在本实施例中,先确定要进行异常检测的时间戳,然后往前推若干天,前面若干天的相同的分钟数作为样本窗口的中心,每一个窗口的中心,同时往前和往后各取若干个数值。同时,在这个过程中,把窗口数量、窗口大小做成可配置的全局参数。
以下将对各个步骤进行详细说明:
步骤S21,获取所述待检测数据点对应的时间戳;
在一实施例中,获取待检测数据点对应的时间戳,具体地,在获取待检测数据点的数值同时也获取了其对应的时序信息,譬如待检测数据点类型是响应率,响应率为0.9,时间戳为12:00:01,那么对其进行异常检测时,需将其时间戳提取出来。可以理解的,每天同一时间的数据值通常是相差不大的,譬如访问人数,在一天的不同时间具有一定的规律性,比如深夜访问人数较白天的访问人数更少,白天不同时间段的访问人数也相应有一定的不同,比如上班时间由于会用到相关服务,则可能访问人数更多。因此,将数据的时间戳作为样本数据选取的参考,能够提高样本数据的关联性。
步骤S22,选择W个数据集窗口,其中,W为大于等于1的正整数;
在一实施例中,设定需要选取的窗口数量。窗口操作时在无限的数据流上,产生有限的数据集,并且每个事件的产生,它就天然的带上了时间属性。因此可以根据时间进行窗口的选择。比如设定选择10个窗口,则10个窗口对应10个时间段的数据。
步骤S23,基于所述时间戳,确认每个数据集窗口的中心点;
在一实施例中,根据待检测数据点的时间戳确认每个数据集窗口的中心点。也即找到和待检测数据点时间戳相同的数据,比如待检测数据点时间戳为12:00:01,则获取前几天12:00:01的数据点作为数据集窗口的中心点。
步骤S24,以所述中心点为基准,向前取M个数值以及向后取N个数值,得到一个包含(M+N+1)*W个样本数据的所述历史样本数据集,其中N,M为大于零的正整数(M+N+1)*W个样本数据的历史样本数据集,其中W,N,M为大于零的正整数。
在一实施例中,当确认中心点后,可以理解的,仅通过一个点进行参照肯定是不够全面准确的,因此,获取该中心点时间前后的样本点,例如当中心点为12:00:01,获取12:00:02、12:00:03、11:59:59、11:59:58等相近时间的数据值。具体地,以中心点时间为基准向前取M个数值,向后取N个数值。则一个数据窗口中数据数量为M+N+1,W个数据窗口则共有(M+N+1)*W个样本数据。W,M,N可以根据实际情况选择,在实践中,推荐的取值为8、10、20。
进一步地,在一实施例中,所述对所述历史样本数据集进行处理,得到训练数据的步骤包括:
步骤S31,对所述历史样本数据集进行分类统计,得到重复数据集和普通数据集;
步骤S32,获取所述重复数据集中的重复数值,并使用预设公式Ki=K-1/2+i*(n+1)对所述重复数值进行替换,得到替换后训练数据集;其中,i=1,2,…,n,代表有n个重复数值为K的重复数据,Ki为将所述n个重复数值为K的数据替换后得到的数值。
在本实施例中,在数据预处理的步骤中,为了消除重复数值的影响,同时不能影响数据集的原有分布,本申请提案推导了一条经验公式,通过替换数值的方式来解决该问题:对历史样本数据集进行分类统计,将数值重复的数据找出来,并且对其进行替换,假设值为K的样本个数为n,则使用Ki来替换K,Ki=K-1/2+i*(n+1),i=1,2,…,n。通常运维指标的数值都是整数,比如交易次数,假设历史样本数据中交易次数有100个10,则根据上述替换公式,使100个10落入开区间(10-0.5,10+0.5)中,将此区间均匀的分成100份,计算得到100个替换数值。此时这100个数值仍然能代表数据的分布情况,不会偏差太大,与此同时又具有不同的数值,并且设置为0.5,在同时重复数据还有90个9,或者80个11的时候,对这些重复数据进行替换后,不会有重复数值出现,使得在后续二叉树的构建时,能够更有效、更准确地对待检测样本进行分类。
现有孤立森林算法在构建二叉树的时候通常会从多个维度中随机指定一个维度,然而本发明通过窗口取样,使得原本是时序数据(包括时间和数值两个维度)的运维指标变为了一维的数据,处理后与时间没有关系,并且通过选取窗口的方式保留了一定的时间特征,即这些数据是与待检测样本点相近时间的历史数据,从而在分类时能够更好的提高分类的准确度,同时本发明异常数据检测方法只需要对一维数据进行处理,相比现有技术简化了算法复杂度。
本实施例通过确定要进行异常检测的待检测数据点的时间戳,并以该时间戳为基准选取预设数量的数据窗口,并确认数据窗口的中心点,获取预设大小的数据窗口作为历史样本数据,实现了样本数据集的合理选取,具有较好的参考性,并且对历史样本数据进行预处理,消除了重复数值的影响,同时不影响数据集的原有分布,提高了检测的准确性。本实施例中结合指标监控运维场景,提出了一种训练数据集的选取方案,通过待检测数据点的时间戳选取样本数据,使得原有的二维时序数据变为了一维的数值,但是并未丢失其时间的特性,有效降低了后续构建二叉树时运算复杂度,节省了计算资源,同时能够准确地对运维场景下的异常点进行检测。
进一步地,基于本发明异常检测方法的在前实施例,提出本发明异常检测方法的第三实施例。
参照图4,图4为本发明异常检测方法一实施例中基于距离集合生成检测结果的流程示意图,在第三实施例中,所述基于所述距离集合生成检测结果的步骤包括:
步骤S561,取所述距离集合的中位数,将所述中位数与预设判定值进行比较;
步骤S562,若所述中位数小于所述预设判定值,则判定所述待检测数据点为异常的离群点,并生成对应的检测结果。
在一实施例中,在判定异常的步骤中,采用根据中位数判定的方法,有效避免了采用均值产生的误报。可以理解的,中位数是样本数据所占频率的等分线,它不受少数几个极端值的影响,因此用它代表全体数据的一般水平更合适。通过取距离集合的中位数,并将该距离中位数与预设判定值进行比较,如果某个点的距离中位数和n个点(数据集中的点数)的平均距离趋于相同,则不太可能是异常点,只有当其大大小于n个点的平均距离时,才可能是异常值。
进一步地,在一实施例中,所述基于所述距离集合生成检测结果的步骤之前,所述方法还包括:
步骤a,根据预设公式和所述历史样本数据集的样本个数,计算得到与所述待检测数据点对应的所述预设判定值;其中,所述历史样本数据集是通过获取所述待检测数据点对应的时间戳;选择W个数据集窗口,其中W为大于或等于1的正整数;基于所述时间戳,确认每个数据集窗口的中心点;以所述中心点为基准,向前取M个数值以及向后取N个数值构建得到的,所述历史样本数据集包含(M+N+1)*W个样本,其中N,M为大于零的正整数(M+N+1)*W个样本数据的所述历史样本数据集,其中N,M为大于零的正整数。
在一实施例中,通过预设公式来设置预设判定值。因为样本距树节点的距离到底差多少时应该判断为异常点,需要经过实验不断调试,当然在另一实施例中可以直接根据经验设定,然而本实施例根据样本个数(与参数W、N、M、W相关)的不同,对预设判定值进行设定,由此能够提高判定的准确率,具体地,在判定因子(预设判定值)的选择上,使用了预设公式0.5*log2(x)作为推荐数值,其中x为样本个数,样本个数具体的与参数W、N、M、W相关,因此预设判定值的计算公式为0.5*log2((M+N+1)*W)。
其中,获取历史样本数据集的详细实施方式可以参照本发明异常检测方法第二实施例。
进一步地,在一实施例中,所述采用构建二叉树的方式,对所述待检测数据集进行运算,并输出检测结果的步骤之后,所述方法还包括:
步骤S61,若所述检测结果为异常点,则生成告警信息;
步骤S62,发送所述告警信息给运维管理人员。
在一实施例中,当检测到待检测数据点为异常点后,需要生成相应的告警信息,以提醒运维管理人员去干预解决。告警信息包括异常原因数据、位置数据、时间数据。通过对实时检测的结果进行分析,生成告警信息,从而更好地对运维数据进行监控。从而实现数据链路监测中故障的发现与排查,避免了人工设置告警规则不灵活且容易产生漏报的情况发生,通过人工实时观测各指标变化无法准确地找到异常数据,并且也没有标准判断规则,而通过本实施例的异常检测方法,能够自行判断检测结果并生成异常的告警信息,从而使运维人员能够根据异常的告警信息尽快地对业务中出现异常的进行处理。
本实施例中通过根据距离中位数进行判定的方法,有效避免了采用均值判定产生的误报,提高了异常监测的准确性,并且在得到检测结果后能自动的分析并生成告警信息,以提示运维管理人员尽快对异常做出处理,提高了运维管理的效率。
本发明还提供一种异常检测装置。如图5所示,图5是本发明异常检测装置一实施例的功能模块示意图。
本发明异常检测装置包括:
获取模块10,用于获取待检测数据点;
样本模块20,用于基于所述待检测数据点,获取对应的历史样本数据集;
预处理模块30,用于对所述历史样本数据集进行处理,得到训练数据;
数据集构建模块40,用于将所述待检测数据点添加到所述训练数据中,得到待检测数据集;
检测模块50,用于采用构建二叉树的方式,对所述待检测数据集进行运算,并输出检测结果。
可选地,所述样本模块还用于:
获取所述待检测数据点对应的时间戳;
选择W个数据集窗口,其中,W为大于等于1的正整数;
基于所述时间戳,确认每个数据集窗口的中心点;
以所述中心点为基准,向前取M个数值以及向后取N个数值,得到一个包含(M+N+1)*W个样本数据的所述历史样本数据集,其中N,M为大于零的正整数。
可选地,所述预处理模块还用于:
对所述历史样本数据集进行分类统计,得到重复数据集和普通数据集;
获取所述重复数据集中的重复数值,并使用预设公式Ki=K-1/2+i*(n+1)对所述重复数值进行替换,得到训练数据集;其中,i=1,2,…,n,代表有n个重复数值为K的重复数据,Ki为将所述n个重复数值为K的数据替换后得到的数值。
可选地,所述检测模块还用于:
在所述待检测数据集中待检测数据的最小值与最大值之间,生成随机浮点数;
以所述随机浮点数为参照,将所述待检测数据集分为第一子集和第二子集;
对所述第一子集和所述第二子集进行相同的递归操作,直到满足递归停止条件,得到对应的根节点;
计算所述待检测数据点到所述根节点的距离;
基于预设运行次数,重复执行在所述待检测数据集中待检测数据的最小值与最大值之间,生成随机浮点数,以所述随机浮点数为参照,将所述待检测数据集分为第一子集和第二子集,对所述第一子集和所述第二子集进行相同的递归操作,直到满足递归停止条件,得到对应的根节点,计算所述待检测数据点到所述根节点的距离的步骤,生成与所述预设运行次数对应的距离集合;
基于所述距离集合生成检测结果。
可选地,所述检测模块还用于:
取所述距离集合的中位数,将所述中位数与预设判定值进行比较;
若所述中位数小于所述预设判定值,则判定所述待检测数据点为异常的离群点,并生成对应的检测结果。
可选地,所述检测模块还用于:
根据预设公式和所述历史样本数据集的样本个数,计算得到与所述待检测数据点对应的所述预设判定值;其中,所述历史样本数据集是通过获取所述待检测数据点对应的时间戳;选择W个数据集窗口,其中W为大于或等于1的正整数;基于所述时间戳,确认每个数据集窗口的中心点;以所述中心点为基准,向前取M个数值以及向后取N个数值构建得到的,所述历史样本数据集包含(M+N+1)*W个样本,其中N,M为大于零的正整数(M+N+1)*W个样本数据的所述历史样本数据集,其中N,M为大于零的正整数。
可选地,所述检测模块还用于:
若所述检测结果为异常点,则生成告警信息;
发送所述告警信息给运维管理人员。
本发明还提供一种计算机可读存储介质。
本发明计算机可读存储介质上存储有异常检测程序,所述异常检测程序被处理器执行时实现如上所述的异常检测方法的步骤。
其中,在所述处理器上运行的管理程序被执行时所实现的方法可参照本发明管理方法各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个拉曼光谱数据处理”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个计算机可读存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种异常检测方法,其特征在于,所述异常检测方法包括以下步骤:
获取待检测数据点;
基于所述待检测数据点,获取对应的历史样本数据集;
对所述历史样本数据集进行处理,得到训练数据;
将所述待检测数据点添加到所述训练数据中,得到待检测数据集;
采用构建二叉树的方式,对所述待检测数据集进行运算,并输出检测结果。
2.如权利要求1所述的异常检测方法,其特征在于,所述基于所述待检测数据点,获取对应的历史样本数据集的步骤包括:
获取所述待检测数据点对应的时间戳;
选择W个数据集窗口,其中W为大于等于1的正整数;
基于所述时间戳,确认每个数据集窗口的中心点;
以所述中心点为基准,向前取M个数值以及向后取N个数值,得到一个包含(M+N+1)*W个样本数据的历史样本数据集,其中N,M为大于零的正整数。
3.如权利要求1所述的异常检测方法,其特征在于,所述对所述历史样本数据集进行处理,得到训练数据的步骤包括:
对所述历史样本数据集进行分类统计,得到重复数据集和普通数据集;
获取所述重复数据集中的重复数值,并使用预设公式Ki=K-1/2+i*(n+1),对所述重复数值进行替换,得到训练数据;其中,i=1,2,…,n,代表有n个重复数值为K的重复数据,Ki为将所述n个重复数值为K的数据替换后得到的数值。
4.如权利要求1所述的异常检测方法,其特征在于,所述采用构建二叉树的方式,对所述待检测数据集进行运算,并输出检测结果的步骤包括:
在所述待检测数据集中待检测数据的最小值与最大值之间,生成随机浮点数;
以所述随机浮点数为参照,将所述待检测数据集分为第一子集和第二子集;
对所述第一子集和所述第二子集进行相同的递归操作,直到满足递归停止条件,得到对应的根节点;
计算所述待检测数据点到所述根节点的距离;
基于预设运行次数,重复执行在所述待检测数据集中待检测数据的最小值与最大值之间,生成随机浮点数,以所述随机浮点数为参照,将所述待检测数据集分为第一子集和第二子集,对所述第一子集和所述第二子集进行相同的递归操作,直到满足递归停止条件,得到对应的根节点,计算所述待检测数据点到所述根节点的距离的步骤,生成与所述预设运行次数对应的距离集合;
基于所述距离集合生成检测结果。
5.如权利要求4所述的异常检测方法,其特征在于,所述基于所述距离集合生成检测结果的步骤包括:
取所述距离集合的中位数,将所述中位数与预设判定值进行比较;
若所述中位数小于所述预设判定值,则判定所述待检测数据点为异常的离群点,并生成对应的检测结果。
6.如权利要求5所述的异常检测方法,所述基于所述距离集合生成检测结果的步骤之前,所述方法还包括:
根据预设公式和所述历史样本数据集的样本个数,计算得到与所述待检测数据点对应的所述预设判定值;其中,所述历史样本数据集是通过获取所述待检测数据点对应的时间戳;选择W个数据集窗口,其中W为大于或等于1的正整数;基于所述时间戳,确认每个数据集窗口的中心点;以所述中心点为基准,向前取M个数值以及向后取N个数值构建得到的,所述历史样本数据集包含(M+N+1)*W个样本,其中N,M为大于零的正整数。
7.如权利要求1-6所述的异常检测方法,其特征在于,所述采用构建二叉树的方式,对所述待检测数据集进行运算,并输出检测结果的步骤之后,所述方法还包括:
若所述检测结果为异常点,则生成告警信息;
发送所述告警信息给运维管理人员。
8.一种异常检测装置,其特征在于,所述装置包括:
获取模块,用于获取待检测数据点;
样本模块,用于基于所述待检测数据点,获取对应的历史样本数据集;
预处理模块,用于对所述历史样本数据集进行处理,得到训练数据;
数据集构建模块,用于将所述待检测数据点添加到所述训练数据中,得到待检测数据集;
检测模块,用于采用构建二叉树的方式,对所述待检测数据集进行运算,并输出检测结果。
9.一种异常检测设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的异常检测程序,所述异常检测程序配置为实现如权利要求1至7中任一项所述的异常检测方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有异常检测程序,所述异常检测程序被处理器执行时实现如权利要求1至7任一项所述的异常检测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210503845.7A CN114860543A (zh) | 2022-05-10 | 2022-05-10 | 异常检测方法、装置、设备与计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210503845.7A CN114860543A (zh) | 2022-05-10 | 2022-05-10 | 异常检测方法、装置、设备与计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114860543A true CN114860543A (zh) | 2022-08-05 |
Family
ID=82638039
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210503845.7A Pending CN114860543A (zh) | 2022-05-10 | 2022-05-10 | 异常检测方法、装置、设备与计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114860543A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116644825A (zh) * | 2023-07-27 | 2023-08-25 | 潍坊市人民医院(潍坊市公共卫生临床中心) | 一种基于大数据的门诊信息查询预约管理系统 |
-
2022
- 2022-05-10 CN CN202210503845.7A patent/CN114860543A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116644825A (zh) * | 2023-07-27 | 2023-08-25 | 潍坊市人民医院(潍坊市公共卫生临床中心) | 一种基于大数据的门诊信息查询预约管理系统 |
CN116644825B (zh) * | 2023-07-27 | 2023-10-03 | 潍坊市人民医院(潍坊市公共卫生临床中心) | 一种基于大数据的门诊信息查询预约管理系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021052394A1 (zh) | 模型训练方法、装置及系统 | |
US10148540B2 (en) | System and method for anomaly detection in information technology operations | |
CN105721187B (zh) | 一种业务故障诊断方法及装置 | |
CN110839016A (zh) | 异常流量监测方法、装置、设备及存储介质 | |
US9369364B2 (en) | System for analysing network traffic and a method thereof | |
EP2894813A1 (en) | Technique for creating a knowledge base for alarm management in a communications network | |
CN111309539A (zh) | 一种异常监测方法、装置和电子设备 | |
CN109120463B (zh) | 流量预测方法及装置 | |
CN111865407B (zh) | 光通道性能劣化智能预警方法、装置、设备及存储介质 | |
CN112769605B (zh) | 一种异构多云的运维管理方法及混合云平台 | |
CN111294217A (zh) | 告警分析方法、装置、系统及存储介质 | |
US20170324627A1 (en) | Diagnostic testing in networks | |
CN111078513A (zh) | 日志处理方法、装置、设备、存储介质及日志告警系统 | |
CN114465874A (zh) | 故障预测方法、装置、电子设备与存储介质 | |
CN108306997B (zh) | 域名解析监控方法及装置 | |
CN114860543A (zh) | 异常检测方法、装置、设备与计算机可读存储介质 | |
CN117271177B (zh) | 基于链路数据的根因定位方法、装置、电子设备及存储介质 | |
CN113727092A (zh) | 基于决策树的视频监控质量巡检方法及装置 | |
CN112699048A (zh) | 基于人工智能的程序故障处理方法、装置、设备及存储介质 | |
CN116662127A (zh) | 一种设备告警信息分类并预警的方法、系统、设备和介质 | |
CN113254313A (zh) | 一种监控指标异常检测方法、装置、电子设备及存储介质 | |
CN111740856A (zh) | 基于异常检测算法的网络通信设备告警采集异常预警方法 | |
CN116702121B (zh) | 一种云桌面场景下增强访问控制安全性的方法 | |
CN114006865B (zh) | 基于多维度指标的用户流量控制系统、方法、终端及介质 | |
CN118509527B (zh) | 一种5g核心网多维kpi时间序列的异常检测方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |