APP下载

基于数据压缩的WSN 水质异常数据检测算法

2022-06-13杨明润郭星锋黄元峰陈柄全

电视技术 2022年5期
关键词:分量水质系数

杨明润,郭星锋,黄元峰,陈柄全

(武汉工程大学 电气信息系,湖北 武汉 430000)

0 引 言

利用无线传感器网络(Wireless Sensor Network,WSN)对大面积水域进行检测时,通常会部署大量传感器节点来感知采集大量的水质数据,这对水质数据异常检测算法的性能提出了更高的要求。文献[1]提出了基于局部密度分析的非周期水质异常检测方法,利用水质时序数据的空间距离关系来准确判断数据是否存在异常。文献[2]提出了一种基于概率密度补偿的改进支持向量机(Support Vector Machines,SVM)异常水质检测算法,通过密度特征思想优化SVM,更有利于后续的数据分类。文献[3]提出了基于自回归(Autoregressive,AR)模型和孤立森林算法的水质异常数据检测方法,通过AR 模型实现水质时间序列数据的高精度预测,并通过孤立森林进行后续的异常检测,能够实现大量数据的异常实时检测。文献[4]针对上述问题提出了基于向量自回归(Vector Autoregression,VAR)模型的水质异常检测算法,通过VAR 算法进行数据多特征融合,检测精度相较于AR 模型得到了较大提升。文献[5]提出了采用人工神经网络预测水质变化,并通过回归分析建立水质参数模型,通过比对神经网络的预测值与模型中数据的分布特点来判断水质异常数据。文献[6]提出了多元数据融合突发水质异常事件预估方法,通过融合算法随水质数据进行两两融合,减少了数据传输量。文献[7]提出了多传感器数据融合的水质检测方法,通过异类数据和同类数据融合算法将数据进行实时融合,再对融合数据进行最终的判定。文献[8]提出了基于动态关联矩阵的水质异常检测方法,通过动态时间规整算法对多维数据进行特征提取,再借助随机森林算法进行后续的异常水质数据检测。文献[9]提出了基于主成分分析和SVM 的数据异常检测算法,通过主成分分析对数据进行降维处理,再利用SVM 进行异常检测。

上述算法对水质数据进行数据融合时的压缩比不高,数据异常特征保留不完整,而且异常检测模型训练集不具代表性。在上述研究的基础上,本文提出了一种基于数据压缩的WSN 异常检测算法。该算法通过小波变换将数据分为低频分量和高频分量,利用压缩感知对低频分量进行压缩,保留高频分量,将高频分量作为异常检测阶段模型的训练集。

1 基于WT-CS 与SVM 相结合的水质异常数据检测算法

在大面积待测水域中,通常会部署成千上万个水质传感器节点来感知采集水质参数,但是同一传感器在时间序列上采集到的水质数据存在大量冗余,使得水质数据在传输过程中会大量消耗节点能量,降低检测效率[10]。针对该问题,本文提出了基于小波变换的压缩感知(WT-CS)与SVM 相结合的分级式水质异常数据检测算法。算法分为两个阶段,第一阶段是水质数据压缩阶段,第二阶段是水质数据异常检测阶段。算法具体流程如图1 所示。

图1 基于WT-CS 与SVM 相结合的分级式水质异常数据检测算法流程

1.1 水质数据压缩阶段

假设M个传感器节点在N个时刻内采集到的初始水质数据为SM×N,利用db1 小波对水质数据SM×N进行多重分解。

(1)采用Mallat 算法通过低频和高频系数将水质数据在db1 小波域内分解,小波低频系数和高频系数为:

式中:Sα,L(n)和Sα,H(n)分别是db1 小波函数对应的低通滤波系数和高通滤波,α为分解层数。

将初始水质数据分别与低频系数和高频系数进行计算后,得到一个低频分量和一个高频分量:

如果要进行下一步分解,则需要通过第一层低频分量再一次与低频系数和高频系数进行计算。经过三层小波分解后,初始水质数据集可以表示为:

在三重小波分解后,可以将水质数据分为包含绝大部分正常水质数据信息的低频分量和包含绝大部分水质数据异常特征的高频分量。此时的低频分量是稀疏表示的,即:

通过压缩感知对小波变换后的低频分量L3(n)进行二次压缩,选取合适的观测矩阵φ对L3(n)进行计算,得到压缩后的测量值y为:

二次压缩后的数据由3 个高频分量和1 个压缩后的低频分量共同组成,其表现形式为:

1.2 水质异常数据检测阶段

利用SVM 的超平面对水质数据进行划分:

寻找最优超平面对数据进行最优划分的过程实质上就是对目标函数进行二次优化,即:

式中:ζi是松弛变量(ζi≥i=1,2,…,l),c是惩罚系数。引入拉格朗日乘αi(i=1,2,3,…,l)得到对偶形式为:

将后续的待测样本导入SVM 模型中进行训练,通过计算来判断数据的所属类别。SVM 模型中一般选择RBF 核函数,即:

此时得到算法的决策函数为:

由决策函数确定边界,再通过计算数据点到边界线的距离进行类别划分。

2 仿真实验

2.1 算法性能评价指标

一般而言,机器学习算法的评价指标就是精度。由于WSN 中异常数据和正常数据所占比例极不平衡,因此精度不适合作为异常检测的评价指标[11]。在数据异常检测中,数据集一般被分为正常数据(负类)和异常数据(正类)两类,则检测结果及样本实际所属类别为真正例(True Positive,TP)、假正例(False Positive,FP)、真反例(True Negative,TN)、反假例(False Negative,FN)。将召回率(True Positive Rate,TPR)和误报率(False Positive Rate,FPR)作为算法性能的评价指标,召回率是被正常检测出来的异常数据的个数与实际异常数据样本的个数之比,误报率是被算法误判为异常的正常数据的个数与正常数据样本总数之比,即:

2.2 数据集与实验环境介绍

本次实验采用太湖水体理化监测数据,该数据集包含了16 种水质参数。为了增加实验数据中数据的多样性,向数据集中人为添加5%的异常数据,添加的异常数据类型包括噪声数据、电池故障数据以及节点短路数据。

为了验证基于WT-CS 与SVM 相结合的分级式水质异常数据检测算法的性能,在Win10 系统中通过Matlab2019a 软件进行了算法的仿真实验与分析。同时为了验证本文算法(以下简称WT-CS-SVM)的有效性,还选取了基于主成分分析的异常数据检测算法(以下简称PAC-SVM)以及支持向量机算法(以下简称SVM)在公开数据集上进行对比仿真。

2.3 仿真结果分析

基于太湖水质数据,对WT-CS-SVM、PACSVM 和SVM 算法进行实验仿真,并将检测时间、检测率和误报率作为衡量指标评价算法性能的指标,结果如表1 所示。

表1 太湖水质数据下的算法性能对比

实验结果表明,本文算法相较于其他两种对比算法,在保证较高检测率的同时,实现了大量水质数据的实时检测。为了避免实验的偶然性,使实验结果更具有说服力,对3 组算法循环运行100 次,取10 次结果为一组,对其求均值。3 种算法的检测率和误报率均值如图2、图3 所示。

图2 2006—2015 年太湖水质检测率平均值

图3 2007—2015 年太湖水质误报率平均值

为了更直观地体现3 种算法的检测性能,将检测率和误报率的平均值折线转化成对应值的分布区间,使各个性能指标的对比更为明显,如表2 所示。

由表2 可知,WT-CS-SVM 分级式水质异常数据检测算法检测时间更短、检测率更高,保证水质异常数据检测准确率的同时实现了对大量水质数据检测的实时性,检测性能更优。

表2 3 种算法检测率平均值取值区间

3 结 语

基于数据压缩的水质异常检测算法首先通过db1 小波对初始水质数据进行三重分解,得到包含绝大部分数据信息的低频系数和包含异常数据的高频系数,其次利用压缩感知对低频系数进行二次压缩,将处理后的水质数据作为训练集导入SVM 模型中进行训练,得到最终的水质数据检测模型。虽然算法具有良好的压缩和异常检测性能,但是受传感器自身因素的限制,小波压缩算法必须是轻量级,选择合适的波形尤为重要,后续将会对该问题进行深入研究。

猜你喜欢

分量水质系数
基于符号相干系数自适应加权的全聚焦成像
一斤生漆的“分量”——“漆农”刘照元的平常生活
一物千斤
关于水质监测对环境保护的意义
一月冬棚养虾常见水质浑浊,要如何解决?这9大原因及处理方法你要知晓
这条鱼供不应求!虾蟹养殖户、垂钓者的最爱,不用投喂,还能净化水质
图像识别在水质检测中的应用
论《哈姆雷特》中良心的分量
嬉水
高阶变系数齐次线性微分方程常系数化的判别准则