APP下载

基于IGWOPSO-SVM算法的水质监测及等级评定系统

2023-07-01肖茂华张海军周俊博汪小旵

华南农业大学学报 2023年4期
关键词:适应度种群水质

蒋 冬,肖茂华,张海军,周俊博,朱 虹,汪小旵,陈 爽

(1 南京农业大学 工学院,江苏 南京 210031;2 江苏省农机具开发应用中心,江苏 南京 210017;3 江苏双木测控技术有限公司,江苏 镇江 212300)

地表水作为人类生活用水重要来源之一,其质量的高低直接影响人类的日常生活[1-2]。在我国工业化和城市化不断推进的过程中,大量工业废水、生活污水的排放和其他人为活动极大地影响着地表水生态系统[3],由此,地表水治理成为了目前环境污染治理的重要部分。地表水污染的防控与治理措施必然离不开对水质的参数监测与等级评定[4],因此,开发水质监测系统,实时掌握地表水污染情况,对于我国水资源高效治理有着重要意义。

水质等级评定是以水质监测的数据为基础,通过某种评价方法,依据水质标准,对水质的污染程度进行判断,目前常见的水质等级评定方法主要有单/多因子指数评价法、模糊数学评价法、聚类评价法,但都存在着效率低、准确率低等问题。随着人工智能技术的成熟,机器学习方法已被广泛应用于水质监测中:曹守启等[5]基于遗传算法优化反向传播(Backpropagation,BP)神经网络,对近海养殖水体中溶解氧含量进行预测;但BP 神经网络结构较复杂,导致其训练时间较长,同时BP 神经网络的性能会受到训练数据的制约,当训练数据不具有代表性时,会严重影响其泛化能力[6]。相较于BP 神经网络,同为机器学习算法的支持向量机(Support vector machine,SVM)具有结构简单、鲁棒性好及广义性强等诸多优势,因此有部分学者将SVM 应用于水质监测中:Sillberg 等[7]采用AR(Attributerealization)和SVM 相结合的方法对泰国湄南河的水质进行监测与分类,该算法的准确度达到了95%,验证了SVM 在水质监测中的可行性。

核函数参数c和惩罚因子g是决定SVM性能的重要参数,但以往这2 个参数常常依靠人为选取,人的主观判断会引起SVM 过拟合和欠学习现象[8]。种群算法由于具有易实现、效果好等优点被广泛应用于参数寻优中:周金[9]采用粒子群(Particle swarm optimization,PSO)-SVM 的方式对电能质量扰动进行检测与分类,相比于SVM,该方法的分类准确率由90.12%上升至98.62%;孙俊等[10]采用灰狼(Grey wolf optimizer,GWO)算法优化的支持向量机回归(Support vector regression,SVR)对番茄叶片含水率进行检测,试验结果表明,相较于SVR,该方法的均方根误差由0.039 0 降为0.020 7。

虽然种群算法具有一定寻优效果,但其中PSO算法具有易陷入局部最优解的缺陷,而GWO 算法的寻优精度较低[11-12],因此未经改进的种群算法难以满足使用需求,仍有较大的改进空间。在单种群算法优化方面,郜云波[13]采用改进粒子群(Improved particle swarm optimization,IPSO)-SVM 的方法对纤维制备生产参数与质量能耗进行预测,相对于PSO 优化SVM,该方法的平均相对误差由2.88 下降至2.45。在复合种群算法方面,Gohil 等[14]采用GWOPSO(Grey wolf optimizer particle swarm optimization)算法优化云端服务器之间工作负载分配问题,相比于PSO、GWO 算法,GWOPSO 算法具有更小的适应度,更加适合于参数优化问题。

基于以上现状,本文设计开发基于IGWOPSO(Improved grey wolf optimizer particle swarm optimization)-SVM 模型的水质监测及等级评定系统,首先确定系统的总体设计方案,设计系统数据处理模块、服务器交互端,同时开发水质监测程序;其次,采用SVM 作为水质等级评定算法,针对SVM 优化问题,采用种群算法优化SVM 中重要参数c、g,并从PSO、GWO 算法融合和改进PSO 算法2 个角度出发,设计IGWOPSO 算法,据此提出IGWOPSO-SVM 水质等级评定算法;最后,基于南京市玄武湖、金川河及江浦水源地的135 组水质数据对IGWOPSO-SVM 水质等级评定算法性能进行验证,以期解决传统等级评定方法效率低、准确率低的问题,为地表水水质的精确监测提供方法借鉴。

1 水质监测系统设计

1.1 系统总体方案设计

水质监测系统由传感器组[15-16]、STM32F103 核心处理器、ESP8266WIFI 无线通信模块、上位机(手机用户端)等组成,总体结构组成如图1所示。STM32F103 核心处理器以对应I/O 接口采集传感器的信号值,通过A/D 转换后得到传感器采集的数据,随后采用ESP8266WIFI 无线通信模块进行数据推送[17],通过TCP/IP 协议与上位机建立稳定的数据连接进行数据传输[18]。上位机接收传感器数据并显示,同时执行IGWOPSO-SVM 模型实现水质分级。

图1 水质监测系统总体结构图Fig.1 General structure of water quality monitoring system

1.2 水质采集模块设计

1.2.1 硬件模块设计 系统通过多传感器对水质数据进行采集,包括BTP1900 总磷传感器、BNH1700总氮传感器、BNH1600 氨氮传感器、BCOD1200 化学需氧量传感器、PH-3020 酸碱度传感器、DO-6020溶解氧传感器以及G-046-S 硫离子传感器。在实际检测水质过程中,采集终端通过对应的传感器节点将调理信号传输至中央处理器,通过CPU 计算后,数据保存至下位机的存储器中,水质数据处理模块的硬件布置方案如图2所示。

图2 硬件布置方案Fig.2 Hardware arrangement scheme

1.2.2 软件模块设计 系统数据采集节点的软件部分通过Keil5 软件编写,当下位机供电后,终端节点进行初始化,当终端节点成功初始化后,调用数据采集的程序,并把传感器采集的数据汇总至STM32F103 单片机中。为实现数据传输节点与上位机的通信,本系统选用ESP8266WIFI 模块,通过TCP/IP 协议与上位机建立稳定的数据流连接进行信息交互,STM32F103 单片机通过设置AT 指令对ESP8266WIFI 模块进行相关设置,当AT 指令发送后,模块会给单片机返回信息,根据返回信息可以得知AT 指令是否成功执行,从而继续发送AT指令,直到模块与上位机建立连接,并进入传输模式,数据采集节点相关的软件设计流程如图3所示。

图3 数据采集节点软件设计的流程图Fig.3 Flow chart of software design in data acquisition node

系统WIFI 无线通信软件使用STA 模式进行开发,基于此模式下,将WIFI 无线通信模块连入对应的网络,通过TCP/IP 协议连接服务器,实现数据的传输。在WIFI 无线通信的程序设计中,由核心处理器执行AT 指令对ESP8266WIFI模块进行相关配置,完成无线模块与上位机的通信,WIFI 无线通信模块软件的设计流程如图4所示。

图4 WIFI 无线通信模块软件设计的流程图Fig.4 Flow chart of software design in WIFI wireless communication module

1.3 服务器交互端设计

本文选用MySQL 作为服务器交互端的框架,同时为减小MySQL 的查找压力,采用Redis 提供缓存服务。首先,启动MySQL、Redis 等各个项目依赖的软件,创建包含表现层(Controller)、业务层(Service)、持久层(Dao) 的3 层服务器架构,如图5所示。其中,Dao 能够直接访问数据库的关系层,针对数据库的水质数据进行添加、删除、修改、查询等;Service 是编写业务逻辑代码的关系层;Controller 是对接用户的界面层,在该层直接处理前端请求并返回相应数据。其次,通过API 持续监控下位机无线通信的IP 地址,在项目中创建Socket 通道从下位机中持续获取传输的水质检测数据,并将接收到的数据更新到MySQL 数据库中。最后,设计对应的前端界面,本系统的前端以We PY 框架和Java Script 的语法编写,采用JavaScript 语法编程将对应的数据嵌入前端页面,在前端页面使用WePY 框架来完成请求发送与数据获取。

图5 服务器交互端设计流程图Fig.5 Flow chart of server interactive end design

系统前端的手机水质监测程序采用微信开发者工具进行开发。如图6所示,微信小程序主要由账号管理部分(图6a、6b)与水质监测部分(图6c、6d)组成:账号管理部分包括账号注册、账号登录以及修改密码功能;水质监测部分包括监测地点天气显示、各传感器数据实时显示、水质等级显示以及水质预警功能。各传感器数据显示部分下关联着各水质指标的历史数据显示,通过获取数据库数据并以Apache ECharts 进行图形化显示来表明变化趋势。

图6 水质监测程序界面Fig.6 Interface of water quality monitoring procedure

2 基于IGWOPSO-SVM 模型的水质等级评定算法

2.1 SVM

SVM 是一种基于统计学习理论的机器学习算法,其原理为在进行样本分类时确定离2 类样本距离最大的超平面[19-20]。SVM 利用内积核函数代替向高维空间的非线性映射,避免了传统机器学习模型维数灾难和过拟合的问题,在解决小样本、非线性和高维识别中表现出巨大的优势[21]。本系统监测数据维度较高且数据间关系较为复杂,因此选用SVM 作为水质等级评定模型。

2.2 IGWOPSO 算法

SVM 中核函数参数c和惩罚因子g对模型的泛化性能有很大影响[22-23]。种群具有优良的收敛性能和寻优精度,被广泛应用于参数寻优。PSO 算法操作简单、收敛速度快,在等级评定、函数优化等领域得到广泛应用,但也存在易过早收敛、易陷入局部最优等缺点,而GWO 算法具有较强的全局收敛能力[24-26];因此本文结合PSO 算法和GWO 算法2 类种群算法,借此提出IGWOPSO 算法优化SVM 参数c和g。

PSO 算法有2 个核心步骤,即速度更新公式和位置更新公式[27]。设种群个体总数为N;总迭代次数为tmax;个体目前迭代次数为t,个体的当前位置为xptso;个体的当前移动速度为vptso。

个体速度更新公式为

个体位置更新公式为

GWO 算法基本原理效仿自然界灰狼群的社会等级制度和狩猎策略的新型种群算法[28]。将狼群分为α、β、γ、δ种群,狼群δ中个体在狩猎过程中接受狼群α、β、γ中个体的支配。GWO 算法的过程可分为包围、追捕、攻击3 个阶段[29]。为方便表示,狼群个体总数、总迭代次数、个体目前迭代次数的设置同PSO 算法。

灰狼个体猎物包围方式为

式中,D:个体与猎物之间距离;xprey:猎物位置;:包围猎物过程开始前灰狼个体位置;:包围猎物过程结束后灰狼个体位置;A、C:变量系数;a:收缩因子,随t增加从2 线性递减至0;r3、r4:2 个不相同[0,1]间随机数。

灰狼个体猎物追捕方式为

式中,Dj:j狼与灰狼个体间距离,xj:j狼当前位置,j取α、β、γ;xi:灰狼个体向j狼移动距离,i取1、2、3;xtgwo:追捕过程开始前灰狼个体位置;:追捕过程结束后灰狼个体位置;Ai、Ci:变量系数,确定方式同式(1)A、C。

灰狼个体攻击猎物方式为:当|A| < 1 时,狼群认为该猎物为最优解,狼群开始攻击猎物,向最优解靠拢;当|A|≥1 时,狼群远离猎物,狼群重新在全局寻找最优解。本文将PSO 和GWO 2 种算法融合:采用GWO 算法更新群内个体位置,利用GWO 算法中狼群社会等级制度增强群内个体交流,增强算法的寻优效率与全局寻优能力,同时引入惯性权值改变算法不同时期α、β、γ狼的引导能力,在算法后期逐渐提高α狼的引导能力,削弱β、γ狼的引导能力,以期增强算法的收敛速度;通过PSO 算法赋予群内个体速度,使其拥有局部搜索能力,提高个体寻优精度及寻优范围。基于此,本文提出一种IGWOPSO 算法。

IGWOPSO 算法个体速度公式为

式中,vt+1:IGWOPSO 算法更新后个体速度;ωb:变量惯性权值;ωmax、ωmin:最大、最小惯性权值;vt:IGWOPSO 算法更新前个体速度。

IGWOPSO 算法个体位置公式为

式中,xt+1:IGWOPSO 算法更新后个体位置。

2.3 IGWOPSO-SVM 模型

IGWOPSO-SVM 模型算法流程如图7所示:构建SVM 模型,初始化并提取SVM 核函数参数c和惩罚因子g;采用PSO 算法优化参数c、g:初始化算法中个体的速度和位置;根据SVM 交叉验证的准确率计算个体适应度,根据适应度大小确定种群中的α、β、γ个体,每个个体根据GWO 算法位置更新方式更新位置,再以IGWOPSO 算法更新个体位置及速度,同时再次计算个体的适应度,据此更新粒子群个体极值和群体极值;判断当前是否满足IGWOPSO 算法的终止条件,若满足则将最优的个体值赋值给SVM 的c、g,训练赋值后的SVM。

图7 IGWOPSO-SVM 模型算法流程Fig.7 Flow chart of IGWOPSO-SVM model algorithm

3 系统性能验证试验

3.1 水质评价标准

依据GB 3 838—2002《地表水环境质量标准》[30],选取7 个具有代表性的水质指标作为评价因子,根据GB 3 838—2002[30]的分类标准,将水质等级划分为Ⅰ~Ⅴ类,不同等级中pH 均为6~9,其余指标各等级标准质量浓度见表1。

表1 地表水各指标不同等级的标准质量浓度Table 1 Standard mass concentrations of different grades for each index in surface waterρ/(mg·L-1)

3.2 试验方案

如图8所示,于江苏省南京市玄武湖、金川河以及江浦水源地采集水质数据135 组:在玄武湖的北湖、西南湖、东南湖分别采集15 组共45 组水质数据,记为S1;在金川河上、中、下游分别采集15 组共45 组水质数据,记为S2;在江浦水源地集中采集45 组水质数据,记为S3。135 组水质样本依次编号为1~135。于2022年5月、6月进行丰水期采样,测试分析指标包括pH,溶解氧、化学需氧量、氨氮、总磷、总氮、硫化物质量浓度,共计7 项指标。采样与测试方法均参照“1 水质监测系统设计”,通过各测试分析指标对应的传感器进行数据采集,后期提取数据库获得对应测试参数。

图8 水质数据采样点Fig.8 Sampling points of water quality data

在进行水质分类前,需训练出符合要求的SVM模型,因此,本文根据标准水质评价指标,采用内插取值方法对每类水质分别生成50 组数据共250 组数据来训练SVM,样本生成规则如表2所示。所选指标除pH 为适度指标外,其他指标均为越小越优型[31]。为消除指标之间的量纲影响,按照公式(7)对原始数据进行归一化处理[32]。

表2 训练样本生成规则Table 2 Generation rules of training samples

式中,y:原始数据;yr:y归一化后的数据;ymax、ymin:数据所属区间的上、下限;y+、y-:适度区间的上、下限。

3.3 结果与分析

根据文献[33] 可知,玄武湖的水质为Ⅳ类水质,金川河的水质为Ⅲ类水质。根据《2022年5月南京市区县级以上集中式生活饮用水水源水质状况报告》[34]可知,江浦水源地的水质为Ⅱ类水质,因此采集的玄武湖、金川河、江浦水源地水质数据的SVM 期望输出分别为4、3、2。

为验证本系统水质监测的效果,同时执行SVM、PSO-SVM、GWO-SVM、IPSO-SVM、GWOPSO-SVM 算法以及本文采用的IGWOPSOSVM 算法,图9为6 种算法的分类结果,表3为6 种算法的分类准确率。

表3 不同算法的分类准确率及性能Table 3 Classification accuracy and performance of different algorithms

图9 不同算法的分类结果Fig.9 Classification results of different algorithms

由图9及表3可知,SVM 算法总样本分类平均准确率为86.67%,能够正确归类S1水质样本,将部分S2水质样本错误归类为Ⅱ类水质,部分S3水质样本错误归类为Ⅱ、Ⅲ类水质;PSO-SVM、GWOSVM 算法总样本分类准确率分别为91.11%、92.59%,相较于SVM 算法均有所提升,证明了种群算法在优化SVM 参数方面的可行性,但PSO-SVM算法仍将部分S3水质样本错误归类为Ⅱ、Ⅲ类水质,说明单种群优化算法仍具有改进空间;IPSO-SVM算法总样本分类准确率为95.56%,相较于PSOSVM、GWO-SVM 算法有所提升,虽正确归类了S2水质样本,但将部分S1水质样本错误归类为Ⅰ类水质;GWOPSO-SVM 算法总样本分类准确率为97.78%,且能够正确区分S1、S2这2 种水质样本,说明复合种群优化算法要优于单种群优化算法;IGWOPSO-SVM 算法能够正确归类所有水质样本,总样本分类准确率为100.00%,相较于SVM 模型总样本分类准确率上升了13.33 个百分点,证明本文提出的IGWOPSO 优化算法具有良好的性能。

为进一步观察各算法模型的性能,选取所有测试样本期望输出与实际输出之间的绝对误差、均方根误差、纳什效率系数(Nash-Sutcliffe efficiency)作为指标评价各模型的性能,结果(表3)表明本算法模型能够准确评定水质等级。

为深入验证IGWOPSO 优化算法在优化SVM 方面的可行性,选用SVM 训练时交叉验证的准确率作为适应度,PSO、GWO、IPSO、GWOPSO、IGWOPSO 这5 种优化算法的适应度曲线如图10所示,5 种优化算法最优c、g解如表4所示。

表4 不同优化算法的最优解Table 4 Optimal solutions of different optimized algorithms

图10 不同优化算法的适应度曲线Fig.10 Fitness curve of different optimized algorithms

根据图10a 可知,在算法迭代过程中,相较于其他4 种算法,IGWOPSO 优化算法整体平均适应度高。相较于PSO 算法,IGWOPSO 优化算法收敛时的迭代次数由90 下降至20,下降77.78%,同时最佳适应度由86.80 上升至99.20,提高了14.29%;说明无论是收敛速度还是收敛精度,IGWOPSO 优化算法均优于单种群算法。相较于GWOPSO 优化算法,IGWOPSO 优化算法引入了IPSO 优化算法的位置更新方式,扩大了算法的寻优空间,更易获得最优解,因此IGWOPSO 优化算法的最佳适应度要高于GWOPSO 优化算法。由表4可知IGWOPSO优化算法寻得的最优解c、g分别为97.234 2 和0.010 0,结合图9的水质分类结果,IGWOPSO 优化算法寻得的c、g解最靠近最优解。PSO 优化算法寻得的最优解c、g分别为9.783 4 和5.023 7,与IGWOPSO 优化算法有较大差距,同时由图10b可知,PSO 优化算法最佳适应度远低于IGWOPSO优化算法最佳适应度,证明PSO 优化算法寻得的解为局部最优解。综上所述,IGWOPSO-SVM 算法能够准确地对水质进行分类,满足实际应用需求。

4 结论

1) 利用传感器组、STM32F103 核心处理器、ESP8266WIFI 无线通信模块及上位机搭建了水质监测系统,完成了系统软硬件及服务器交互端的布置方案,并开发了水质监测程序。

2) 以SVM 为基体搭建水质等级评定模型,并采用种群算法优化其参数c、g。针对单种群优化算法的缺陷,提出一种IGWOPSO 优化算法,据此完成IGWOPSO-SVM 水质等级评定算法设计。

3) 基于南京市玄武湖、金川河、江浦水源地135 组水质数据进行IGWOPSO-SVM 水质等级评定算法性能验证试验,并将IGWOPSO-SVM 算法的运行结果与SVM、PSO-SVM、GWO-SVM、IPSO-SVM、GWOPSO-SVM 算法进行比对。结果表明,IGWOPSO-SVM 算法能够正确区分所有水质样本数据,相较于SVM,IGWOPSO-SVM 算法分类准确率上升了13.33 个百分点。相较于PSO 算法,IGWOPSO 算法最佳适应度由86.80 上升至99.20,提高了14.29%。IGWOPSO-SVM 算法可靠性优于其他5 种模型,满足实际应用需求。

猜你喜欢

适应度种群水质
水质抽检岂容造假
改进的自适应复制、交叉和突变遗传算法
山西省发现刺五加种群分布
一月冬棚养虾常见水质浑浊,要如何解决?这9大原因及处理方法你要知晓
中华蜂种群急剧萎缩的生态人类学探讨
基于空调导风板成型工艺的Kriging模型适应度研究
水质总磷测定存在的问题初探
水质总氮测定方法改进探究
岗更湖鲤鱼的种群特征
少数民族大学生文化适应度调查