一种基于迭代的异常检测方法和检测装置与流程

文档序号:13482859阅读:152来源:国知局
本发明实施例涉及故障检测
技术领域
,具体为一种基于迭代的异常检测方法和检测装置。
背景技术
:异常检测是数据分析的基础步骤,当确定异常以及异常模式(模型)之后,后续更复杂的分析,如故障分类,故障溯源才能继续展开。作为基础工作的异常检测,在工业、医疗、金融等领域都受到极大的重视和广泛的应用,对于不同的数据及不同的应用场景,相对应的异常检测方法和和方法的优化是重要的研究方向。现有的异常检测方法通常应用在数据的正常及异常情形差异明显的情况下,利用主成分分析(pca)、独立成分分析(ica)等降维方法筛选数据中的有效参数,再通过统计或机器学习算法,训练异常检测模型,识别数据中的正常及异常状态;另一种异常检测方法利用预先建立的经验模型或物理模型,模拟检测的数据,通过计算实际值和模拟值的误差,判断正常及异常状态。现有的异常检测方法中,异常检测模型是固定的,是经过训练后不再改变的。现有的异常检测方法虽然能识别出数据中的正常及异常状态,然而从正常到异常状态是一种缓慢渐变的过程,现有方法识别出的是已经稳定的异常情形,即异常的情况已经恶化到某种程度,不能识别出异常发生的初始点。技术实现要素:为解决现有技术中存在的问题,本发明实施例提供一种基于迭代的异常检测方法和检测装置。第一方面,本发明实施例提供一种基于迭代的异常检测方法,该方法包括:步骤s1、获取待检数据的异常区间和正常区间,并根据所述异常区间和所述正常区间的数据训练异常检测模型;步骤s2、利用滑动窗口方法通过所述异常检测模型检测所述待检数据,得到滑动窗口每次滑动覆盖范围内数据的检测结果,并根据所述检测结果重新划分所述待检数据的异常区间和正常区间;步骤s3、根据所述重新划分待检数据的异常区间和正常区间中的数据,重新训练所述异常检测模型;步骤s4、若所述步骤s2中的所述检测结果的检测错误率不超过所设阈值,则重复执行步骤s2和步骤s3,以迭代优化所述异常检测模型;若所述检测结果的检测错误率超过所设阈值,则停止迭代并得到优化的所述异常检测模型,并根据所述检测结果确定渐变异常发生的初始点,即由多数正常转变为异常的转折点。第二方面,本发明实施例提供一种基于迭代的异常检测装置,该装置包括:初始区间及异常检测模型获取模块,用于获取待检数据的异常区间和正常区间,并根据所述异常区间和所述正常区间的数据训练异常检测模型;异常检测模型迭代优化模块,用于利用滑动窗口方法通过所述异常检测模型检测所述待检数据,得到滑动窗口每次滑动覆盖范围内数据的检测结果,并根据所述检测结果重新划分所述待检数据的异常区间和正常区间;根据所述重新划分待检数据的异常区间和正常区间中的数据,重新训练所述异常检测模型;优化的异常检测模型形成及异常初始点获取模块,用于若所述异常检测模型迭代优化模块的所述检测结果的检测错误率不超过所设阈值,则触发所述异常检测模型迭代优化模块重复执行,以迭代优化所述异常检测模型;若所述检测结果的检测错误率超过所设阈值,则停止迭代并得到优化的所述异常检测模型,并根据所述检测结果确定渐变异常发生的初始点,即由多数正常转变为异常的转折点。第三方面,本发明实施例提供一种计算机设备,包括存储器和处理器,所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如下方法:步骤s1、获取待检数据的异常区间和正常区间,并根据所述异常区间和所述正常区间的数据训练异常检测模型;步骤s2、利用滑动窗口方法通过所述异常检测模型检测所述待检数据,得到滑动窗口每次滑动覆盖范围内数据的检测结果,并根据所述检测结果重新划分所述待检数据的异常区间和正常区间;步骤s3、根据所述重新划分待检数据的异常区间和正常区间中的数据,重新训练所述异常检测模型;步骤s4、若所述步骤s2中的所述检测结果的检测错误率不超过所设阈值,则重复执行步骤s2和步骤s3,以迭代优化所述异常检测模型;若所述检测结果的检测错误率超过所设阈值,则停止迭代并得到优化的所述异常检测模型,并根据所述检测结果确定渐变异常发生的初始点,即由多数正常转变为异常的转折点。第四方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如下方法:步骤s1、获取待检数据的异常区间和正常区间,并根据所述异常区间和所述正常区间的数据训练异常检测模型;步骤s2、利用滑动窗口方法通过所述异常检测模型检测所述待检数据,得到滑动窗口每次滑动覆盖范围内数据的检测结果,并根据所述检测结果重新划分所述待检数据的异常区间和正常区间;步骤s3、根据所述重新划分待检数据的异常区间和正常区间中的数据,重新训练所述异常检测模型;步骤s4、若所述步骤s2中的所述检测结果的检测错误率不超过所设阈值,则重复执行步骤s2和步骤s3,以迭代优化所述异常检测模型;若所述检测结果的检测错误率超过所设阈值,则停止迭代并得到优化的所述异常检测模型,并根据所述检测结果确定渐变异常发生的初始点,即由多数正常转变为异常的转折点。本发明实施例通过迭代检测的方法,不断优化异常检测模型,在最大化异常检测模型的似然率的同时,确定正常及异常状态的分界,进而识别数据中的渐变异常,并找到或靠近渐变异常实际发生的初始点,还可获取整个异常数据的区间范围。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的基于迭代的异常检测方法流程图;图2为本发明实施例提供的基于迭代的异常检测装置结构示意图;图3是本发明实施例提供的计算机设备的结构示意图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例针对数据的异常情形在整个数据时间段中不能重复发生的情况,也即数据的异常情形和正常情形不能交叉出现。所述异常情形和正常情形指的是统计学上的结果,由于单个数据具有随机性,因此并不指单个数据。本发明实施例可适用于一维或n维的时序数据,且可为工业数据、移动设备数据和测量数据等不同数据。图1为本发明实施例提供的基于迭代的异常检测方法流程图。如图1所示,该方法包括:步骤s1、获取待检数据的异常区间和正常区间,并根据所述异常区间和所述正常区间的数据训练异常检测模型;机器学习分类过程一般由两部分组成,即模型建立和分类两部分。首先采用训练数据集和分类算法得到一个分类模型,然后利用分类模型对未知数据信息进行分类。本发明实施例利用传统统计方法或机器学习分类算法获取所述数据的异常区间和正常区间。通常所述异常区间的范围比实际异常数据的范围要窄,所述正常区间的范围比实际正常数据的范围要宽。选取所述异常区间的数据和所述正常区间的数据训练异常检测模型,该异常检测模型可为传统的统计分析模型或通过支持向量机、k最邻近法、决策树、神经网络等算法得到。步骤s2、利用滑动窗口方法通过所述异常检测模型检测所述待检数据,得到滑动窗口每次滑动覆盖范围内数据的检测结果,并根据所述检测结果重新划分所述待检数据的异常区间和正常区间;滑动窗口的大小是指滑动窗口覆盖数据对应的时间范围,如覆盖1天的数据,可简单说滑动窗口的大小为一天。步长是指滑动窗口每次滑动越过的时间范围。需对滑动窗口的大小及每一次滑动的步长进行重复的试验,确定滑动窗口的大小及每一次滑动的步长。因为,如果滑动窗口过大,则包含异常数据的滑动窗口中,异常数据的比例过低,这样统计出来的结果认为该窗口中的数据为正常数据,因此无法识别其中的异常数据,造成准确率的下降。如果滑动窗口过小,滑动次数增加,造成效率的下降。对于滑动窗口的步长,一般来讲,步长可以等于滑动窗口的大小,这样可以实现数据的顺次连续读取。另外,步长也可以小于或大于滑动窗口的大小。当步长小于滑动窗口的大小时,滑动窗口滑动前后覆盖的数据范围有重叠,这样,重叠的部分的数据可以参与两次运算,以进一步提高正确率;另外,如果重叠部分的结果前后不一致,可单独针对重叠部分的数据再次进行检测。当步长大于滑动窗口的大小时,则滑动窗口没有实现数据的连续读取,这是考虑到由于数据的异常情形是连续的,如果前后的数据段均为异常,则中间的数据段也为异常数据,加大步长会提高检测效率。总之,实践中,应根据精度的要求和数据的实际特点,对滑动窗口的大小及每一次滑动的步长进行重复的试验并加以确定。利用滑动窗口方法通过训练好的所述异常检测模型检测所述待检数据,识别数据中的正常及异常状态,得到滑动窗口每次滑动覆盖范围内数据的检测结果。对于滑动窗口每次滑动覆盖范围内数据的检测结果,如果大部分为正常数据,则认为滑动窗口覆盖范围内的数据为正常数据;如果大部分为异常数据,则认为滑动窗口覆盖范围内的数据为异常数据。一般来讲,由于个别数据为误差数据,所以对于异常数据段,异常数据占比应接近100%;对于正常数据段,正常数据占比应接近100%。根据检测到的所述检测结果(正常或异常)重新划分所述待检数据的异常区间和正常区间。步骤s3、根据所述重新划分待检数据的异常区间和正常区间中的数据,重新训练所述异常检测模型;利用步骤s2重新划分的正常数据和异常数据的区间范围,选取一部分的正常数据及更多的异常数据重新训练所述异常检测模型,优化异常检测模型的边界。步骤s4、若所述步骤s2中的所述检测结果的检测错误率不超过所设阈值,则重复执行步骤s2和步骤s3,以迭代优化所述异常检测模型;若所述检测结果的检测错误率超过所设阈值,则停止迭代并得到优化的所述异常检测模型,并根据所述检测结果确定渐变异常发生的初始点,即由多数正常转变为异常的转折点。在优化异常检测模型的过程中,需保证异常检测模型的准确性,即所述异常检测模型能准确的区分已经识别的正常及异常数据。由于异常情形的连续性,根据历次异常检测模型的统计结果,可以识别部分正常数据及异常数据。如前几次迭代识别出的正常数据和异常数据一般是可以保证正确的。对步骤s2的所述异常检测模型的检测结果用已确认的正常数据和异常数据进行验证,在满足所述异常检测模型的检测错误率,即对已经识别的正常及异常数据的检测错误率不超过所设阈值的前提下,重复地执行步骤s2及步骤s3,逐步迭代优化异常检测模型,并观察每次迭代优化后异常检测模型的检测结果。如果所述异常检测模型的检测错误率超过所设阈值,则停止迭代,得到最终优化的异常检测模型。所设阈值可以设置为20%。根据所述最终优化的异常检测模型的检测结果,也即步骤s2最后获取的检测结果,确定渐变异常发生的初始点,即由多数正常转变为异常的转折点。进一步地,还可获取异常状况的结束点,即由多数异常转变为正常的转折点,从而获取整个异常数据的区间范围。本发明实施例通过迭代检测的方法,不断优化异常检测模型,在最大化异常检测模型的似然率(与异常模型之间的相似以及与正常模型之间的差异)的同时,确定正常及异常状态的分界,进而识别数据中的渐变异常,并找到或靠近渐变异常实际发生的初始点,还可获取整个异常数据的区间范围。进一步地,基于上述实施例,所述根据所述检测结果重新划分所述待检数据的异常区间和正常区间具体包括:寻找所述检测结果发生变化的所述滑动窗口,利用更小的滑动窗口参数重新检测所述检测结果发生变化的所述滑动窗口对应的待检数据,根据重新检测的结果重新划分所述待检数据的异常区间和正常区间。所述根据所述检测结果重新划分所述待检数据的异常区间和正常区间具体通过如下方法实现:找到检测结果发生变化的所述滑动窗口,如一个滑动窗口对应数据的检测结果为正常,相邻另一个滑动窗口对应数据的检测结果为异常,则这两个相邻窗口为所述检测结果发生变化的所述滑动窗口。则以检测结果发生变化的所述滑动窗口对应的待检数据为对象,用更小的滑动窗口参数如更小的滑动窗口大小或滑动窗口步长进行检测,为提高准确性,滑动窗口大小及步长可以在满足精度要求的基础上尽量小。这里的精度要求是指满足以大多数数据的检测结果作为滑动窗口整体数据检测结果的容忍时间范围,也即对应滑动窗口的大小。如半天内的数据多数为正常,则可接受此半天内的数据都为正常,则对精度的要求是滑动窗口的大小为半天。还可对滑动窗口的步长提出要求,如可要求步长不能大于滑动窗口的大小,即不能有漏检的数据。上述满足精度要求是指滑动窗口的大小和步长要小于或等于精度要求。最后,根据重新检测的结果重新划分所述待检数据的异常区间和正常区间。由于在检测结果发生变化的滑动窗口处对应的数据对于划分所述待检数据的异常区间和正常区间影响较大,由于异常情形的连续性,在连续异常数据段或连续正常数据段用较大的滑动窗口进行检测影响不大。因此,如前所述,具体的滑动窗口大小和步长可通过实验确定。为进一步说明本步骤,下面举一个实例。假设待测数据集为6月1日至7月31日的数据。根据步骤s1得到的异常子集为7月1日至7月5日的数据,正常子集为其余数据。也即异常区间为7月1日至7月5日,正常区间为其余区间段。滑动窗口的大小设为一天,滑动窗口的步长也设为一天。通过所述异常检测模型,按照时间轴从待检数据的起始点开始对滑动窗口覆盖的数据进行检测。即从6月1日的待检数据开始,对每一天的待检数据进行检测,观察滑动窗口覆盖的待检数据即每一天待检数据的统计结果,寻找异常检测模型的检测结果发生变化的窗口。如果检测结果表现出来是正常-异常-正常的变化规律,则应有两个所述正常及异常结果发生变化的滑动窗口。假设对待检数据的检测结果如表1所示。表1数据检测结果数据所在日期检测结果6月1日至6月26日正常6月27日至6月30日异常7月1日至7月5日异常7月6日至7月9日异常7月10日至7月31日正常由表1可知,检测结果发生变化的滑动窗口对应的时间分别是6月26日和6月27日,以及7月9日和7月10日。对以上四天的数据在满足精度要求的前提下,用更小的滑动窗口或步长遍历一遍,如滑动窗口设置为半天,步长也设置为半天,对每半天的待检数据进行检测,根据重新检测的结果得到重新划分的正常数据和异常数据的区间范围。假设重新检测结果如表2所示。表2数据重新检测结果数据所在日期检测结果6月1日至6月25日正常6月26日上午正常6月26日下午异常6月27日上午异常6月27日下午异常6月28日至6月30日异常7月1日至7月5日异常7月6日至7月8日异常7月9日上午异常7月9日下午异常7月10日上午正常7月10日下午正常7月11日至7月31日正常由表2可知,利用新的滑动窗口参数重新检测后,异常数据的区间范围变为6月26日下午至7月9日下午,其余区间段为正常数据的区间范围,即重新划分了所述待检数据的异常区间和正常区间。当然,还可以用观察法或其他方法通过检测结果发生变化的滑动窗口对应的待检数据或用新的滑动窗口参数重新检测后检测结果发生变化的滑动窗口对应的待检数据得到正常数据和异常数据的分界点,进而重新划分正常数据和异常数据的区间范围,本发明实施例不做限定。本发明实施例通过迭代检测的方法,不断优化异常检测模型,在最大化异常检测模型的似然率的同时,确定正常及异常状态的分界,进而识别数据中的渐变异常,并找到或靠近渐变异常实际发生的初始点,还可获取整个异常数据的区间范围。进一步地,基于上述实施例,所述获取待检数据的异常区间和正常区间具体包括:将所述待检数据划分为若干数据子集,依次选取不同的两个所述数据子集作为训练子集训练分类模型,并用所述训练子集以外的所述数据子集验证所述分类模型,根据验证结果确定所述待检数据的异常区间和正常区间。本发明实施例待检数据的异常时间段可以是已知或未知的,若待检数据异常状态的时间段未知,即数据的异常发生位置未知,可以依照相同时间长度、相同数据长度等方法切分数据,将数据切分为若干份数据子集(k-folder),通过分类算法如支持向量机、k最邻近法、决策树等算法,依次选取不同的两个数据子集进行分类模型的训练。假设选取的数据子集一个为正常子集,另一个为异常子集,学习分类模型,并用训练子集以外的数据子集进行验证。若验证结果均非常差,即在每个验证子集中,正常及异常均大量且随机的出现,则选取的两个训练子集均为正常子集或均为异常子集,需从剩下的数据子集中重新选择数据子集作为异常子集,训练分类模型;若验证结果非常好,即验证子集中,大部分数据为正常,则选择作为分类模型训练的异常子集为正确的异常子集,选择作为分类模型训练的正常子集为正确的正常子集;如果验证结果大部分数据为异常,则选择作为分类模型训练的正常子集为正确的异常子集,选择作为分类模型训练的异常子集为正确的正常子集。如此,即可确认数据的异常区间和正常区间,即所述异常子集构成所述异常区间,其余的区间范围即为所述正常区间。本发明实施例通过迭代检测的方法,不断优化异常检测模型,在最大化异常检测模型的似然率的同时,确定正常及异常状态的分界,进而识别数据中的渐变异常,并找到或靠近渐变异常实际发生的初始点,还可获取整个异常数据的区间范围。进一步地,基于上述实施例,所述获取待检数据的异常区间和正常区间具体包括:将所述待检数据划分为若干数据子集,通过统计方法,比较不同数据子集之间的统计值差异,从而确定所述待检数据的异常区间和正常区间。本发明实施例待检数据的异常时间段可以是已知或未知的,若待检数据异常状态的时间段未知,即数据的异常发生位置未知,可以依照相同时间长度、相同数据长度等方法切分数据,将数据切分为若干份数据子集(k-folder),通过统计方法,如计算数据的平均值及方差,比较不同数据集之间的统计值差异,选取与其他数据集差异最大的数据集视为异常数据集,所述异常数据集构成所述异常区间,其余的区间范围即为所述正常区间。本发明实施例通过迭代检测的方法,不断优化异常检测模型,在最大化异常检测模型的似然率的同时,确定正常及异常状态的分界,进而识别数据中的渐变异常,并找到或靠近渐变异常实际发生的初始点,还可获取整个异常数据的区间范围。图2为本发明实施例提供的基于迭代的异常检测装置结构示意图。如图2所示,该装置包括初始区间及异常检测模型获取模块10、异常检测模型迭代优化模块20和优化的异常检测模型形成及异常初始点获取模块30,其中:初始区间及异常检测模型获取模块10用于获取待检数据的异常区间和正常区间,并根据所述异常区间和所述正常区间的数据训练异常检测模型;利用传统统计方法或机器学习分类算法获取所述数据的异常区间和正常区间。通常所述异常区间的范围比实际异常数据的范围要窄;所述正常区间的范围比实际正常数据的范围要宽。选取所述异常区间的数据和所述正常区间的数据训练异常检测模型,该异常检测模型可为传统的统计分析模型或通过支持向量机、k最邻近法、决策树、神经网络等算法得到。异常检测模型迭代优化模块20用于利用滑动窗口方法通过所述异常检测模型检测所述待检数据,得到滑动窗口每次滑动覆盖范围内数据的检测结果,并根据所述检测结果重新划分所述待检数据的异常区间和正常区间;根据所述重新划分待检数据的异常区间和正常区间中的数据,重新训练所述异常检测模型;需对滑动窗口的大小及每一次滑动的步长进行重复的试验,确定滑动窗口的大小及每一次滑动的步长。然后,利用滑动窗口方法通过训练好的所述异常检测模型检测所述待检数据,识别数据中的正常及异常状态,得到滑动窗口每次滑动覆盖范围内数据的检测结果。对于滑动窗口每次滑动覆盖范围内数据的检测结果,如果大部分为正常数据,则认为滑动窗口覆盖范围内的数据为正常数据;如果大部分为异常数据,则认为滑动窗口覆盖范围内的数据为异常数据。根据检测到的所述检测结果(正常或异常)重新划分所述待检数据的异常区间和正常区间。利用上述重新划分的正常数据和异常数据的区间范围,选取一部分的正常数据及更多的异常数据重新训练所述异常检测模型,优化异常检测模型的边界。优化的异常检测模型形成及异常初始点获取模块30用于若所述异常检测模型迭代优化模块的所述检测结果的检测错误率不超过所设阈值,则触发所述异常检测模型迭代优化模块重复执行,以迭代优化所述异常检测模型;若所述检测结果的检测错误率超过所设阈值,则停止迭代并得到优化的所述异常检测模型,并根据所述检测结果确定渐变异常发生的初始点,即由多数正常转变为异常的转折点。在优化异常检测模型的过程中,需保证异常检测模型的准确性,即所述异常检测模型能准确的区分已经识别的正常及异常数据。由于异常情形的连续性,根据历次异常检测模型的统计结果,可以识别部分正常及异常数据。对异常检测模型迭代优化模块20得到的异常检测模型的检测结果用已确认的正常数据和异常数据进行验证,在满足所述异常检测模型的检测错误率,即对已经识别的正常及异常数据的检测错误率不超过所设阈值的前提下,触发所述异常检测模型迭代优化模块20重复执行,以迭代优化所述异常检测模型。观察异常检测模型迭代优化模块20每次迭代优化后得到的异常检测模型的检测结果。如果所述异常检测模型的检测错误率超过所设阈值,则停止迭代,得到最终优化的异常检测模型。所设阈值可以设置为20%。根据所述最终优化的异常检测模型的检测结果,确定渐变异常发生的初始点,即由多数正常转变为异常的转折点。进一步地,还可获取异常状况的结束点,即由多数异常转变为正常的转折点,从而获取整个异常数据的区间范围。本发明实施例通过迭代检测的方法,不断优化异常检测模型,在最大化异常检测模型的似然率的同时,确定正常及异常状态的分界,进而识别数据中的渐变异常,并找到或靠近渐变异常实际发生的初始点,还可获取整个异常数据的区间范围。进一步地,基于上述实施例,所述异常检测模型迭代优化模块20还用于:寻找所述检测结果发生变化的所述滑动窗口,利用更小的滑动窗口参数重新检测所述检测结果发生变化的所述滑动窗口对应的待检数据,根据重新检测的结果重新划分所述待检数据的异常区间和正常区间。异常检测模型迭代优化模块20根据所述检测结果重新划分所述待检数据的异常区间和正常区间具体通过如下方法实现:找到检测结果发生变化的所述滑动窗口,如一个滑动窗口对应数据的检测结果为正常,相邻另一个滑动窗口对应数据的检测结果为异常,则这两个相邻窗口为所述检测结果发生变化的所述滑动窗口。则以检测结果发生变化的所述滑动窗口对应的待检数据为对象,用更小的滑动窗口参数如更小的滑动窗口大小或滑动窗口步长进行检测,为提高准确性,滑动窗口大小及步长可以在满足精度要求的基础上尽量小。上述满足精度要求是指滑动窗口的大小和步长要小于或等于精度要求。最后,根据重新检测的结果重新划分所述待检数据的异常区间和正常区间。本发明实施例通过迭代检测的方法,不断优化异常检测模型,在最大化异常检测模型的似然率的同时,确定正常及异常状态的分界,进而识别数据中的渐变异常,并找到或靠近渐变异常实际发生的初始点,还可获取整个异常数据的区间范围。进一步地,基于上述实施例,所述初始区间及异常检测模型获取模块10还用于:将所述待检数据划分为若干数据子集,依次选取不同的两个所述数据子集作为训练子集训练分类模型,并用所述训练子集以外的所述数据子集验证所述分类模型,根据验证结果确定所述待检数据的异常区间和正常区间。若待检数据异常状态的时间段未知,即数据的异常发生位置未知,可以依照相同时间长度、相同数据长度等方法切分数据,将数据切分为若干份数据子集(k-folder),通过分类算法如支持向量机、k最邻近法、决策树等算法,依次选取不同的两个数据子集进行分类模型的训练。假设选取的数据子集一个为正常子集,另一个为异常子集,学习分类模型,并用训练子集以外的数据子集进行验证。若验证结果均非常差,即在每个验证子集中,正常及异常均大量且随机的出现,则选取的两个训练子集均为正常子集或均为异常子集,需从剩下的数据子集中重新选择数据子集作为异常子集,训练分类模型;若验证结果非常好,即验证子集中,大部分数据为正常,则选择作为分类模型训练的异常子集为正确的异常子集,选择作为分类模型训练的正常子集为正确的正常子集;如果验证结果大部分数据为异常,则选择作为分类模型训练的正常子集为正确的异常子集,选择作为分类模型训练的异常子集为正确的正常子集。如此,即可确认数据的异常区间和正常区间,即所述异常子集构成所述异常区间,其余的区间范围即为所述正常区间。本发明实施例通过迭代检测的方法,不断优化异常检测模型,在最大化异常检测模型的似然率的同时,确定正常及异常状态的分界,进而识别数据中的渐变异常,并找到或靠近渐变异常实际发生的初始点,还可获取整个异常数据的区间范围。进一步地,基于上述实施例,所述初始区间及异常检测模型获取模块10还用于:将所述待检数据划分为若干数据子集,通过统计方法,比较不同数据子集之间的统计值差异,从而确定所述待检数据的异常区间和正常区间。本发明实施例待检数据的异常时间段可以是已知或未知的,若待检数据异常状态的时间段未知,即数据的异常发生位置未知,可以依照相同时间长度、相同数据长度等方法切分数据,将数据切分为若干份数据子集(k-folder),通过统计方法,如计算数据的平均值及方差,比较不同数据集之间的统计值差异,选取与其他数据集差异最大的数据集视为异常数据集,所述异常数据集构成所述异常区间,其余的区间范围即为所述正常区间。本发明实施例通过迭代检测的方法,不断优化异常检测模型,在最大化异常检测模型的似然率的同时,确定正常及异常状态的分界,进而识别数据中的渐变异常,并找到或靠近渐变异常实际发生的初始点,并可获取整个异常数据的区间范围。本发明实施例提供装置是用于上述方法的,具体功能可参照上述方法流程,此处不再赘述。图3是本发明实施例提供的计算机设备的结构示意图。如图3所示,计算机设备1包括处理器301、存储器302和总线303。其中,所述处理器301和所述存储器302通过所述总线303完成相互间的通信;所述处理器301用于调用所述存储器302中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:步骤s1、获取待检数据的异常区间和正常区间,并根据所述异常区间和所述正常区间的数据训练异常检测模型;步骤s2、利用滑动窗口方法通过所述异常检测模型检测所述待检数据,得到滑动窗口每次滑动覆盖范围内数据的检测结果,并根据所述检测结果重新划分所述待检数据的异常区间和正常区间;步骤s3、根据所述重新划分待检数据的异常区间和正常区间中的数据,重新训练所述异常检测模型;步骤s4、若所述步骤s2中的所述检测结果的检测错误率不超过所设阈值,则重复执行步骤s2和步骤s3,以迭代优化所述异常检测模型;若所述检测结果的检测错误率超过所设阈值,则停止迭代并得到优化的所述异常检测模型,并根据所述检测结果确定渐变异常发生的初始点,即由多数正常转变为异常的转折点。本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:步骤s1、获取待检数据的异常区间和正常区间,并根据所述异常区间和所述正常区间的数据训练异常检测模型;步骤s2、利用滑动窗口方法通过所述异常检测模型检测所述待检数据,得到滑动窗口每次滑动覆盖范围内数据的检测结果,并根据所述检测结果重新划分所述待检数据的异常区间和正常区间;步骤s3、根据所述重新划分待检数据的异常区间和正常区间中的数据,重新训练所述异常检测模型;步骤s4、若所述步骤s2中的所述检测结果的检测错误率不超过所设阈值,则重复执行步骤s2和步骤s3,以迭代优化所述异常检测模型;若所述检测结果的检测错误率超过所设阈值,则停止迭代并得到优化的所述异常检测模型,并根据所述检测结果确定渐变异常发生的初始点,即由多数正常转变为异常的转折点。本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:步骤s1、获取待检数据的异常区间和正常区间,并根据所述异常区间和所述正常区间的数据训练异常检测模型;步骤s2、利用滑动窗口方法通过所述异常检测模型检测所述待检数据,得到滑动窗口每次滑动覆盖范围内数据的检测结果,并根据所述检测结果重新划分所述待检数据的异常区间和正常区间;步骤s3、根据所述重新划分待检数据的异常区间和正常区间中的数据,重新训练所述异常检测模型;步骤s4、若所述步骤s2中的所述检测结果的检测错误率不超过所设阈值,则重复执行步骤s2和步骤s3,以迭代优化所述异常检测模型;若所述检测结果的检测错误率超过所设阈值,则停止迭代并得到优化的所述异常检测模型,并根据所述检测结果确定渐变异常发生的初始点,即由多数正常转变为异常的转折点。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。以上所描述的计算机设备等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1