一种基于预测和动态阈值的Argo剖面异常检测方法与流程

文档序号:11515182阅读:400来源:国知局
一种基于预测和动态阈值的Argo剖面异常检测方法与流程

本发明涉及海洋数据异常检测技术领域,具体是一种基于预测和动态阈值的argo剖面异常检测方法。



背景技术:

argo(arrayforreal-timegeostrophicoceanography,地转海洋学实时观测阵)是第一个实时的、高分辨率的全球立体海洋观测网,因其活跃性和规模,可以说是海洋观测史上的一场革命。自2000年实施以来,所获得的温度、盐度剖面数据量比过去100年收集的总量还多。但是由于argo浮标自身的随机性和抛弃性,很难对于传感器进行校正,所以很有可能出现数据误差或错误。而为了进一步服务于科研和其他社会应用,需要对于数据的质量精度有一定的保证,所以argo剖面数据的异常检测就显得尤为重要。

异常检测(anomalydetection)就是识别出与历史或者预期模式有显著差别的过程,异常数据可能由于传感器采集错误或者数据传输等原因产生。对于异常检测,国内外学者已经做了大量的研究。haiyanwang利用小波分解将网络流量分为高频流量和低频流量,再分别利用rvm(relevancevectormachine,相关向量机)和arma(autoregressivemovingaverage,自回归移动平均模型)模型实现对于数据的预测,最后利用预测数据获取阈值实现对于流量的异常检测。agrawals等分别利用多种预测模型计算环境传感器的预测值来获取置信区间,实现对于传感器观测数据的异常检测。余宇峰等利用滑动窗口和ln预测模型获取水文数据的预测值,并通过对比观测值与预测值,实现了对于水文数据的异常检测。综上所述,比较预测值与观测值之间的关系可以有效地实现对于时间序列的异常检测。

arma是一种典型的、应用最广的时间序列模型。wangk等利用arma模型实现估计观测噪声方差的目的。李磊等通过arma模型可以有效地探测到地震电离层出现的异常扰动,并且具有较高的精度。sheny等利用最小二乘法(ls)与arma模型相结合的方法,实现了对于卫星导航定位和航天器跟踪中重要的极性参数的预测。陈春燕等使用arma模型预测在线电视剧的流行度,预测结果准确性高,并且具有较高的参考价值。因此,使用arma模型可以有效地实现时间序列预测,并且具有较高的预测精确度,是一种理想的预测模型。

随着海洋观测技术的飞速发展,海洋数据呈指数级的增长。关于argo剖面数据的异常检测,也有大量的学者做了研究工作。wonga等提出了一种利用传统阈值判断方法剔除异常数据,其所要求的剖面计算公式为:检测值=|v2-(v3+v1)/2|-|(v3-v1)/2|,其中v2表示待测数值,v1、v3表示与v2相邻的上下两个剖面点数据。当测试数据是盐度时,当压强<500dbar时,检测值超过0.9psu,或者当压强≥500dbar时,检测值超过0.3psu,则待测值标记为异常。可以看出,该方法只是针对单一剖面数据进行异常检测,并且没有考虑采样点检测深度间隔的变化。王辉赞等采用“三倍标准差”与传统阈值判断相结合的方法实现对argo剖面数据异常检测,该方法结合了邻近剖面数据,弥补了传统阈值判定方法的不足,但是该方法采用的是全局静态阈值,存在当阈值设置不合适时造成某些异常剖面点的误判或者漏判。纪风颖等将多年的历史温盐观测数据(南森站和ctd资料)通过最小二乘法拟合得到某地区的温盐关系模型,并利用该模型对argo剖面数据进行质量控制。但是由于温盐数据的非线性的特点,采用最小二乘法无法很好地提取出数据特征,因此获得的温盐关系模型精确度不高,导致异常检测的可靠性也不高。



技术实现要素:

本发明的目的是提供一种基于预测和动态阈值的argo剖面异常检测方法,该方法可以准确的判断出正常剖面点或者异常剖面点,异常检测的可靠性高。

实现本发明目的的技术方案是:

一种基于预测和动态阈值的argo剖面异常检测方法,具体包括如下步骤:

1)选取待测的argo文件,对argo文件中的数据属性进行预处理,提取数据属性,并设置待测剖面点的argo文件的剖面时间序列为pn={p1,p2,…pi,…,pn}、k-近邻剖面点序列的宽度k和置信度p,待测剖面点的剖面观测值序列为on={o1,o2,…,oi,…on},(1≤i≤n);

2)定义待测剖面点pi的k-近邻剖面点序列ζi={pi-2k,pi-2k+1,…,pi-1};

3)建立arma预测模型,将ζi作为输入参数获得ti时刻对应的剖面预测值

4)利用中心线极限定理计算ti时刻对应的阈值thi,得到置信区间

5)为了遍历所有的剖面子序列,选用滑动窗口技术,判断步骤1)中的剖面观测值oi是否在步骤4)中得到的置信区间内,若oi在阈值thi的范围内,则pi为正常剖面点,令flag=1,后移一位滑动窗口,执行步骤5);若oi在阈值范围thi外,则pi为异常剖面点,令flag=0,后移一位滑动窗口,用步骤3)得到的剖面预测值替换oi,继续执行步骤4),直至检测完所有的待测剖面点后,执行步骤5);

5)判断经过步骤4)后得到的正常的剖面点pi是否满足i<n,若满足,则i=i+1,跳至步骤3);若不满足,则执行步骤6);

6)对pn的异常检测结束,输出

经过上述步骤,完成对argo文件的剖面异常检测。

步骤4)中,所述的置信区间是依据中心极限定理来确定的,其计算如下:

上述公式(1)中,为ti时刻对应的预测值,ta/2(2k-1)为服从自由度为2k-1的t分布在置信度为p时所对应的值,si为arma预测模型的残差的标准差,k为滑动窗口的宽度;因此,阈值范围为:

上述公式(2)中,阈值下界为阈值上界为

步骤5)中,所述的滑动窗口,基于k-最近邻原则建立,并选取单边窗口作为k-近邻滑动窗口。

所述的单边窗口,是指待测剖面点左边的长度为2k的剖面子序列,即其中所包含的所有元素都是经过异常检测后的数据。

有益效果:本发明提供的的异常检测方法特异度高,保持在99%以上,说明本方法可以很好的检测出正常剖面点为正常。但是,当置信度p≥95%时,敏感度只有60%左右,说明当置信区间范围设置过大时,能够真正判断出异常剖面点的效果不是很好,而当置信度设置在p∈[80%,90%]范围内时,敏感度可以维持在80%以上,而且随着滑动窗口宽度k的增加,敏感度呈上升趋势。此外,本方法的精确度一直维持在99%以上,说明本方法可以准确的判断出正常剖面点或者异常剖面点,其他的指标也维持较高的水平。当滑动窗口宽度k∈[10,20],置信度p∈[80%,90%]时,敏感度可以达到85%以上,并且特异度可以维持在99%,准确度在99%以上,说明本发明的异常检测方法具有较高的可靠性。

附图说明

图1为一种基于预测和动态阈值的argo剖面异常检测方法流程图;

图2为异常检测缓解策略示意图;

图3为实施例的argo剖面文件;

图4为15°n~18°n,138°w~141°w盐度剖面序列;

图5为盐度剖面序列的预测结果;

图6为k=10,p=95%条件下的异常检测结果;

图7为不同方法的roc曲线。

具体实施方式

下面结合附图和实施例对本发明做进一步阐述,但不是对本发明的限定。

如图1所示,一种基于预测和动态阈值的argo剖面异常检测方法,具体包括如下步骤:

1)选取待测的argo文件,对argo文件中的数据属性进行预处理,提取数据属性,并设置待测剖面点的argo文件的剖面时间序列为pn={p1,p2,…pi,…,pn}、k-近邻剖面点序列的宽度k和置信度p,待测剖面点的剖面观测值序列为on={o1,o2,…,oi,…on},(1≤i≤n);

2)定义待测剖面点pi的k-近邻剖面点序列ζi={pi-2k,pi-2k+1,…,pi-1};

3)建立arma预测模型,将ζi作为输入参数获得ti时刻对应的剖面预测值

4)利用中心线极限定理计算ti时刻对应的阈值thi,得到置信区间

5)为了遍历所有的剖面子序列,选用滑动窗口技术,判断步骤1)中的剖面观测值oi是否在步骤4)中得到的置信区间内,若oi在阈值thi的范围内,则pi为正常剖面点,令flag=1,后移一位滑动窗口,用pi替代ζi={pi-2k,pi-2k+1,…,pi-1}中的pi-1,获得新的k-最近邻窗口ζi+1,执行步骤5);若oi在阈值范围thi外,则pi为异常剖面点,令flag=0,后移一位滑动窗口,用pi替代ζi={pi-2k,pi-2k+1,…,pi-1}中的pi-1,获得新的k-最近邻窗口ζi+1,用步骤3)得到的剖面预测值替换原有的观测值oi,即如图2所示,继续执行步骤4),直至检测完所有的待测剖面点后,执行步骤5);

5)判断经过步骤4)后得到的正常的剖面点pi是否满足i<n,若满足,则i=i+1,跳至步骤3);若不满足,则执行步骤6);

6)对pn的异常检测结束,输出

经过上述步骤,完成对argo文件的剖面异常检测。

步骤4)中,所述的置信区间是依据中心极限定理来确定的,其计算如下:

上述公式(1)中,为ti时刻对应的预测值,ta/2(2k-1)为服从自由度为2k-1的t分布在置信度为p时所对应的值,si为arma预测模型的残差的标准差,k为滑动窗口的宽度;因此,阈值范围为:

上述公式(2)中,阈值下界为阈值上界为

步骤5)中,所述的滑动窗口,基于k-最近邻原则建立,并选取单边窗口作为k-近邻滑动窗口。

所述的单边窗口,是指待测剖面点左边的长度为2k的剖面子序列,即其中所包含的所有元素都是经过异常检测后的数据。

实施例:

选用从中国argo实时资料中心获取的2016年全球argo浮标剖面数据进行实验,实验数据以.dat文件表示,如图3所示,本实施例所采用的实验环境是myeclipse2016。

从图3可以看出,原始的argo剖面文件中包含多个属性,主要包括温度、压强、盐度。本发明方法是无法直接检测原始argo剖面文件,需要对于数据进行预处理,提取出所需要的属性。本实验采用盐度属性进行验证,但是盐度的变化趋势会随着经纬度的变化而变化,所以本实验将盐度数据按照经纬度网格3°×3°进行划分,再选取某一网格中的数据进行实验验证。

如图4所示,为经纬度为15°n~18°n,138°w~141°w范围内的盐度剖面数据曲线,共有2011个剖面点,横坐标是剖面点个数,纵坐标是盐度观测值,由图4可知,盐度剖面具有周期性,数据整体平稳,但是也存在一些明显的可疑点。

输入2016年15°n~18°n,138°w~141°w范围内的盐度argo剖面序列pn={p1,p2,…,pi,…,pn},k-近邻剖面点序列的宽度k,置信度p。

输出argo剖面标记序列

具体步骤是:

步骤1定义待测盐度剖面点pi的k-最近邻窗口ζi={pi-2k,pi-2k+1,…,pi-1}。

步骤2建立arma预测模型,输入ζi作为输入参数,计算获得盐度的预测值

步骤3根据公式(2)和步骤2所得到的盐度预测值计算对应的盐度上界和盐度下界

步骤4判定待测盐度剖面点pi是否异常。若盐度观测值oi在步骤3所获得的界限内,则点pi为正常点,令flag=1,跳转至步骤5;否则点pi为异常点,令flag=0,跳转至步骤6。

步骤5通过后移一位滑动窗口,用pi替代ζi={pi-2k,pi-2k+1,…,pi-1}中的pi-1,获得新的k-最近邻窗口ζi+1,跳转至步骤7)。

步骤6通过后移一位滑动窗口,用pi替代ζi={pi-2k,pi-2k+1,…,pi-1}中的pi-1,获得新的k-最近邻窗口ζi+1,并以预测值替换原有的观测值oi,即

步骤7若i<n,则i=i+1,跳至步骤2;否则,对pn的异常检测结束,输出

a、预测

在本方法中,预测剖面数据是核心步骤,因此,为了检测预测效果,本实验采用均方根误差(rootmeansquareerror,rmse)和相对均方根误差(relativerootmeansquareerror,rrmse)来对于预测结果进行量化评估。

均方根误差表示为:

相对均方根误差表示为:

其中,xi为剖面观测值,为剖面预测值,n为样本数。

如下表1所示为arma预测模型和ln(single-layerlinearnetworkpredictor,单层线性网络预测模型)预测模型在滑动窗口宽度k=10的条件下盐度剖面预测误差,从表1可以看出,arma预测模型的rmse和rrmse均小于ln预测模型,具有较高的精确度。

表1盐度剖面预测误差

如下表2所示的是arma预测模型在不同的滑动窗口宽度k下的盐度剖面预测误差,从表2可以看出,随着滑动窗口宽度k的不断增大,rmse和rrmse不断地减小,因为随着输入的预测参数的增加,预测结果会越准确。

表2不同滑动窗口宽度的盐度剖面预测误差

图5所示为盐度剖面序列的预测结果,从图5可以看出,预测数据大都与原始观测数据十分接近,只有部分数据与观测数据有较大的偏差,说明本预测模型的预测精度较高,可以有效地应用于剖面观测数据的异常检测中。

b.异常检测

从预测结果可以看出,本方法采用arma预测模型,可以获得较好地预测结果,因此,根据此预测结果,可以实现对于盐度剖面序列的异常检测。滑动窗口宽度k=10,置信度p=95%条件下的异常检测结果如图6所示。

不同的滑动窗口宽度和置信区间下异常检测的结果可能是不同的。为了能够有效的评价本方法,在此将异常检测结果分为4类,如表3所示。其中,tn和tp是希望出现的结果,而fn和fp是判定出现错误所出现的结果。

表3检测结果分类

敏感度(sensitivity,sen)是描述异常检测发现真正的异常剖面点的概率,其公式描述如下:

特异度(specificity,spe)是描述正常剖面点被正确分离出来的概率,其公式描述如下:

阳性预测值(positivepredictivevalue,ppv)是描述检测到的异常剖面点是真正的异常剖面点的概率,其公式描述如下:

阴性预测值(negativepredictivevalue,npv)是描述检测到的正常剖面点是真正的正常剖面点的概率,其公式描述如下:

精确度(accuracy,acc)是描述异常剖面点和正常剖面点均被正确检测出来的概率,其公式描述如下:

表4不同参数对异常检测的结果对比

根据表3的检测结果分类和公式(5)~(9),不同参数下的异常检测结果如表4所示。从表4可知,当选择滑动窗口宽度k=10,置信度p=95%条件下,本发明的异常检测方法可以正确检测出异常剖面点10个(tp=10),正常剖面点被正确判定出来的剖面点有1994个(tn=1994),但是有2个正常剖面点被错误的判定为异常剖面点(fp=2),最后,还有5个异常剖面点没有被检测出(fn=5)。

通过对比表4的评估结果可以看出,本发明的异常检测方法的特异度很高,一直保持在99%以上,说明本方法可以很好的检测出正常剖面点为正常。但是,当置信度p≥95%时,敏感度只有60%左右,说明当置信区间范围设置过大时,能够真正判断出异常剖面点的效果不是很好,而当置信度设置在p∈[80%,90%]范围内时,敏感度可以维持在80%以上,而且随着滑动窗口宽度k的增加,敏感度呈上升趋势。此外,本方法的精确度一直维持在99%以上,说明本方法可以准确的判断出正常剖面点或者异常剖面点,其他的指标也维持较高的水平。当滑动窗口宽度k∈[10,20],置信度p∈[80%,90%]时,敏感度可以达到85%以上,并且特异度可以维持在99%,准确度在99%以上,说明本发明的异常检测方法具有较高的可靠性。

为了能够更好地评估本发明的异常检测方法,将本发明方法与其他的异常检测方法通过同一张“受试者工作特征”(receiveroperatingcharacteristic,roc)曲线上。在roc曲线中,横坐标是“假正比率”(falsepositiverate,fpr),纵坐标是“真正比率”(truepositiverate,tpr),两者的公式分别为:

在进行方法比较时,当一个方法的roc曲线被另一个方法的roc曲线完全“包住”,则可说明后者的性能优于前者。从公式(11)~(12)可以看出,fpr就是“1-特异度”,而tpr就是“敏感度”。在异常检测中,理想的是获得高tpr,低fpr,意味着曲线越接近坐标轴的左上角,方法的精确度越高,性能越好。

图7所示的是本发明的异常检测方法与温盐关系模型的异常检测方法、基于“ln”预测模型的异常检测方法和k近邻方法的roc曲线对比图。图7表明,本发明方法的异常检测效果优于其他异常检测方法。温盐关系模型方法采用的是最小二乘法拟合历史温盐数据获得上下界来实现异常检测,但是由于该模型的精确度不高导致异常检测的效果是最不理想的。k近邻方法的效果虽然优于温盐关系模型方法,但是相较于其他两种方法,检测效果一般。基于“ln”预测的方法与本发明方法检测效果较为接近,但是由于该方法的选取的预测模型应用于argo剖面数据集中,预测误差较大,所以其检测效果相较于本发明方法略逊一筹。而本发明方法的roc曲线始终位于最上方,完全“包住”了其他三种方法,所以检测效果最好,准确性高。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1