基于主曲线的Argo温盐剖面异常检测方法

2018-08-17 03:00:38罗一迪王慧娇
计算机工程与设计 2018年8期
关键词:盐度投影剖面

蒋 华,罗一迪,王慧娇,王 鑫

(桂林电子科技大学 计算机与信息安全学院,广西 桂林 541004)

0 引 言

Argo浮标容易受到环境的影响,尤其是盐度传感器易受到生物污染等因素的影响,使得获取到的剖面数据会产生误差。而且Argo浮标自身具有抛弃式和随着洋流漂移的特点,无法对传感器进行回收校正,所以很难得知传感器产生误差的原因,使得其数据准确度难以判断。因此,为了避免数据错误,为后期分析海洋数据提供高质量的数据集,对于Argo剖面数据进行异常检测是十分必要的。

异常检测在很多领域都得到了应用。如水文[1]、网络流量[2]、智能电网[3]、信号[4]、飞机发动机数据[5]等领域。为了提高Argo剖面数据的数据质量,国内外学者们也做了相关的研究工作。目前主要应用的是“三倍标准差”与传统阈值判定相结合的方法[6]和温盐关系模型[7]。

由于Argo剖面数据具有非线性的特点,采用K主曲线可以很好地拟合Argo剖面数据,而温盐关系模型可以有效利用历史剖面数据。因此,本文采用K主曲线与温盐关系模型相结合的方法实现对于Argo温盐剖面数据的异常检测,并且有较高的检测精度和可靠性。

1 相关理论

1.1 K主曲线

主曲线是通过寻找通过数据分布的“中间”并满足“自相合”的光滑一维曲线,可以很好地描述非线性数据的特征。当前,主曲线算法在不同领域得到了应用,如信息融合[8],异常检测[9],数据预测[10],GPS河岸线的提取[11]等。

设一个样本集合Xn={x1,x2,…,xn}⊂Rd,K主曲线生成算法的基本思想是:取第一主成分线上作为初始曲线f0,n,然后执行迭代算法,在第k次迭代时,在曲线fk-1,n的基础上增加一个新的顶点,然后在内循环中反复执行投影和期望两个步骤,直至满足收敛条件得到新的曲线fk,n。K主曲线生成算法流程如图1所示。

图1 K主曲线生成算法流程

1.2 温盐关系模型

温盐关系模型是一种气候学模型,由于温度和盐度是Argo浮标测量中两个重要的元素,而且两个属性相对独立,温度测量精确,因此通过建立温盐关系模型,在已知温度数据的条件下,能够预测出该剖面的盐度状况。温盐关系模型[7]建立过程如下:

首先将温度(tem)数据和盐度(sal)数据映射到同一个T-S二维坐标上。其中横坐标tem为自变量,纵坐标sal为因变量。拟合坐标点获得盐度(sal)的期望曲线f

sal=f(tem)

(1)

对于所有位于曲线外的温度、盐度数据点(temp,salp),计算这些盐度salp与在该温度temp下盐度的期望值f(temp)的偏移量Δsalp

Δsalp=salp-f(temp)

(2)

再次拟合偏移点获得盐度偏移的期望曲线v

(3)

则对于每一个温度观测值temp,对应的盐度上界曲线方程和下界曲线方程分别为

salup=f(temp)+a1×vup(temp)

(4)

saldown=f(temp)-a2×vdown(temp)

(5)

其中,ai是权重系数。图2为建立的温盐关系模型。

图2 温盐关系模型

2 基于K主曲线的温盐剖面异常检测方法

由于Argo浮标剖面数据是离散型数据,且是非线性分布,所以无法进行方程描述,而K主曲线可以很好地描述非线性数据的特征。因此本文提出K主曲线与温盐关系模型相结合的方法,实现温盐剖面的异常检测。该方法首先利用K主曲线拟合Argo温盐剖面数据生成温盐主剖面,然后以温盐主剖面为基础生成温盐关系模型,最后利用温盐关系模型预测不同温度下的盐度的上下界,最后通过判断盐度观测值是否在阈值区间内来判定温盐剖面是否为异常剖面点。具体方法如图3所示。

图3 温盐剖面异常检测方法

在本章中,首先介绍利用K主曲线理论拟合生成温盐主剖面的方法,然后在此基础上建立温盐关系模型,最后利用该模型,实现温盐剖面的异常检测。

2.1 Argo温盐主剖面生成

由于海水的温度、盐度关系在不同的海域存在不同的关系,所以不能将全球海域所有的温盐数据做整体处理,需要将已有的Argo温盐剖面数据根据经纬度进行划分,在本文方法中,将温盐剖面数据集划分为经纬度3°×3°的网格,本方法是针对其中一个网格中的数据进行研究。

(1)在初始化阶段,将温盐剖面数据集O利用最小二乘法进行线性拟合得到拟合线l0,取l0的两端点p1、p2以及l0作为初始主剖面K0(P0,L0)。

(2)在投影步阶段,依据最近邻原则计算主剖面Ki-1中的点和线段的最近邻分区D,最近邻分区如图4所示。

图4为第m次迭代生成的主剖面Km(Pm,Lm)的最近邻分区。

图4 最近邻分区

Km(Pm,Lm)包含k+1个点和k条线段,并将数据集划分为2k+1个分区,即

D={D1,D2,…,D2k+1}={P1,P2,…,Pk+1,L1,L2,…,Lk}

其中,最近邻点分区Pi中的点为所有到点pi的欧式距离最小的点,可表示为

∀on∈Pi∈O,ζ(on,pi)=Δ(on,Km)<ζ(on,pj),
j=1,2,…,i-1

(6)

其中,ζ(on,pi)表示点on与点pi之间的欧式距离,Δ(on,Km)=minψ(on,li)表示点on到主剖面Km的最短距离,ψ(on,li)表示点on到线段li的投影距离。

最近邻线段分区Li中的点为所有到线段li的投影距离最短的点,可表示为

∀on∈Li∈O,ψ(on,li)=Δ(on,Km)<ψ(on,lj),
j=1,2,…,i-1

(7)

(8)

Di的最大投影距离点omax为该分区中到主剖面Km的投影距离最大的点,可表示为

omax={oi∈Di:Δ(oi,Km)>Δ(oj,Km)},
j=1,2,…,i-1,i+1,…,n

(9)

2.2 Argo温盐关系模型生成

生成Argo温盐主剖面,不仅能够约简温盐剖面数据集,而且能够得到真实反映整体数据形态的曲线。在此基础上,生成的温盐关系模型,具有更高的精确度和可靠性。

具体的Argo温盐关系模型生成方法如下:

输入:Argo温盐剖面数据集O,温盐主剖面K(P,L)

输出:盐度上界salup,盐度下界saldown

步骤4 若i

步骤5 求盐度上偏移主剖面Vupp,l。

步骤6 求盐度下偏移主剖面Vdownp,l。

步骤7 根据式(4)计算盐度上界salup,输出salup。

步骤8 根据式(5)计算盐度下界saldown,输出saldown。

2.3 异常检测方法实现

对于Argo温盐剖面点的异常定义如下:

定义1 (异常剖面点):设待测剖面点为ot(temt,salt),若ot的盐度值salt超出对应的阈值tht范围,则判断ot为异常剖面点。否则,ot为正常剖面点。其中,tht⊆[thdownt,thupt],thupt和thdownt分别为依据温盐关系模型获得的在温度为temt的条件下的盐度的上界u(temt)和下界d(temt)。

输入待测剖面点ot(temt,salt),根据其温度值temt,通过温盐关系模型得到盐度上界u(temt)和盐度下界d(temt),若待测剖面点ot的盐度值salt满足条件:(salt>d(temt))∧(salt

输入:训练剖面点集Otrain=o1,o2,…,om,待测剖面点集Otest=ot1,ot2,…,otn。

步骤1 利用训练剖面点集Otrain生成温盐主剖面K(P,L)。

步骤2 生成Otrain的温盐关系模型。

步骤3 计算待测剖面点oti(temti,salti)的盐度上界和下界,得到u(temti)和d(temti)。

步骤5 若i

图5为基于K主曲线的Argo温盐剖面异常检测方法执行流程。

图5 基于K主曲线的温盐关系模型异常检测方法的流程

3 实验结果与分析

为了验证本文提出的基于主曲线的Argo温盐剖面异常检测方法的有效性,采用从中国Argo实时资料中心获取的1997年7月至2016年10月的全球Argo浮标剖面数据进行实验。本文方法所采用的实验环境:CPU为Intel Core i3,2.3 GHZ,4 GB内存,操作系统为Windows 7,开发工具为MyEclipse2016,编程语言为Java。实验数据以.dat文件表示,所用的训练剖面点集为1997年7月至2015年12月的Argo剖面数据,测试剖面点集为2016年1月至2016年10月的Argo剖面数据。

3.1 数据预处理

由于本实验的主要研究对象是温度与盐度数据,但是在不同的经纬度下,盐度的变化是有明显的差别的,因此,在进行异常检测时需按照不同的经纬度进行分区,本文方法将所有的数据按照经纬度网格3°×3°进行划分。从定义2可知,Argo剖面数据文件中包含着很多的信息,其中有大量的与本研究无关的冗余信息,因此,需要对于这些信息进行筛选,提取出有效信息以减少后续操作的数据量。本实验所需要的数据包括温度(tem)和盐度(sal),在预处理阶段,需将这些信息提取出来。

通过预处理,获得了3°×3°经纬度网格中的剖面点分布。如图6所示,为训练剖面点集中位于18°N~21°N,114°E~117°E经纬度网格中的51,186个温盐剖面数据点。其中,横坐标为温度值,纵坐标为盐度值。

图6 18°N~21°N,114°E~117°E网格温盐剖面点分布

3.2 异常检测实验

经过预处理后,获得了只有温度和盐度信息的原始剖面点。在模型建立阶段,利用主剖面算法,经过多次不同的投影阈值实验,对比生成的主剖面的残差均值,选择残差均值较小的剖面,因为残差均值越小,说明算法的提取效果越好,可以更好地反映剖面数据特征。表1中表示了不同投影阈值下的执行结果,由表1可知,投影阈值λ=0.02时,残差均值过大,会造成剖面特征信息的丢失,而当λ=0.06和λ=0.1时,残差均值均未超过0.2,可以较好地反映剖面特征,因此,投影阈值可以选择λ∈0.06,0.1,在本次实验中,为了后续更好地进行异常检测,选取λ=0.06时生成的主剖面。如图7所示,为利用训练剖面点集,为λ=0.06时生成的主剖面。

表1 不同投影阈值结果

图7 18°N~21°N,114°E~117°E分区内温盐剖面生成的主剖面

在获得温盐剖面数据的主剖面后,计算偏离主剖面的点的盐度偏移量,再次利用主剖面算法,拟合剖面偏移点,经过多次的投影阈值实验,获得上偏移主剖面和下偏移主剖面。选择合适的权重系数,计算获得盐度的上下界,最终生成温盐关系模型,如图8所示。

图8 18°N~21°N,114°E~117°E分区内温盐关系模型

温盐关系模型的建立完成后,为检验其有效性,使用该模型检测测试剖面点集,判断该剖面点集中的异常剖面点。

表2是可能出现的不同的检测结果。其中,TP表示正常被检测为正常,TN表示异常被检测为异常。上述两种情况是异常检测的理想情况。FP表示正常被检测为异常,FN表示异常被检测为正常,这两种情况是在异常检测中不希望出现的情况。根据表2所示,可以通过不同的量化指标从不同的角度对异常检测结果进行分析。

表2 检测结果分类

(10)

(11)

从上述公式可知,灵敏度和特异度值越高,异常检测的性能越好。

表3为不同参数下异常检测的结果,当选择权重为(3.5,3)时,本文的异常检测算法可以正确检测出异常剖面点145个(TP=145),正常剖面点被正确判定出来的剖面点有1631个(TN=1631),但是有61个正常剖面点被错误的判定为异常剖面点(FP=61),最后,还有43个异常剖面点没有被检测出(FN=43)。

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

从表3可以看出,本文方法可以有效检测出温盐剖面数据集中的异常剖面点,特异度达到89%以上,灵敏度也可以保持在65%以上。而且随着权重的不断增加,温盐关系模型的上下界范围也越来越大,正常剖面点能够更好地识别出来,使得异常检测的特异度从89.54%增加到99.17%,但是有一些异常剖面点被误判为正常剖面点,使得敏感度从74.46%降低到66.69%。因此,在选择权重时要权衡敏感度和特异度,才能达到最佳的检测效果。从表3可知,当权重取(3.5,3)时,灵敏度最高为77.13%,可靠性可达到96.39%,异常检测效果最好。

图9是本文方法(基于K主曲线的温盐关系模型)和原始温盐关系模型(基于最小二乘法拟合的温盐关系模型)以及实时质量监控方法和基于“三倍标准差”的方法对测试温盐剖面集的检测效果ROC的对比。从图7可以看出,实时质量控制方法只是针对单一剖面点进行异常检测,判断标准过于片面,异常剖面点基本上都被误判为正常剖面点,敏感度极低。基于“三倍标准差”的方法未能够充分利用历史剖面数据,虽然相较于实时质量控制方法敏感度有所提升,但是其检测效果还是不理想。原始温盐关系模型充分利用历史数据,但是其拟合数据的方法是最小二乘法,因此未能十分好的反映数据特征,检测效果一般。而本文方法,由于选用的是K主曲线描述数据,可以很好地反映数据特征,建立的温盐关系模型精确度更高,因此ROC曲线在原始温盐关系模型之上,检测效果最好。

图9 不同方法下ROC对比

通过对不同参数检测效果的比较以及与其它方法检测效果的比较,本文方法结果稳定,效果最佳,具有较强的实用性。

4 结束语

为了提高Argo浮标的数据质量,本文提出了一种基于主曲线的Argo温盐剖面异常检测方法。利用K主曲线理论获取Argo温盐剖面的主剖面,在此基础上建立温盐关系模型,并利用该模型实现了对于Argo温盐剖面数据的异常检测。通过全球Argo实际观测数据验证了其具有较高的有效性和可靠性。在下一步工作中,将对整体剖面异常检测进行深入研究,以提高Argo剖面数据的整体质量。

猜你喜欢
盐度投影剖面
解变分不等式的一种二次投影算法
三点法定交叉剖面方法
——工程地质勘察中,一种做交叉剖面的新方法
基于最大相关熵的簇稀疏仿射投影算法
找投影
找投影
学生天地(2019年15期)2019-05-05 06:28:28
基于曲线拟合的投弃式剖面仪电感量算法
电子测试(2017年12期)2017-12-18 06:35:46
复杂多约束条件通航飞行垂直剖面规划方法
盐度和pH对细角螺耗氧率和排氨率的影响
盐度胁迫对入侵生物福寿螺的急性毒性效应
适用于高盐度和致密岩层驱油的表面活性剂