CN116432832A - 基于XGBoost-LSTM预测模型的水质预测方法 - Google Patents
基于XGBoost-LSTM预测模型的水质预测方法 Download PDFInfo
- Publication number
- CN116432832A CN116432832A CN202310274275.3A CN202310274275A CN116432832A CN 116432832 A CN116432832 A CN 116432832A CN 202310274275 A CN202310274275 A CN 202310274275A CN 116432832 A CN116432832 A CN 116432832A
- Authority
- CN
- China
- Prior art keywords
- rmse
- validation
- xgboost
- prediction model
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 title claims abstract description 36
- 238000012545 processing Methods 0.000 claims abstract description 33
- 238000012549 training Methods 0.000 claims abstract description 32
- 238000000605 extraction Methods 0.000 claims abstract description 12
- 230000002159 abnormal effect Effects 0.000 claims abstract description 7
- 238000004458 analytical method Methods 0.000 claims abstract description 7
- 238000000513 principal component analysis Methods 0.000 claims abstract description 7
- 238000010219 correlation analysis Methods 0.000 claims abstract description 5
- 230000008569 process Effects 0.000 claims description 17
- 230000008859 change Effects 0.000 claims description 14
- 239000011159 matrix material Substances 0.000 claims description 8
- 239000013535 sea water Substances 0.000 claims description 8
- 238000010276 construction Methods 0.000 claims description 6
- 238000002474 experimental method Methods 0.000 claims description 6
- 238000010606 normalization Methods 0.000 claims description 6
- 230000009467 reduction Effects 0.000 claims description 6
- 230000000694 effects Effects 0.000 claims description 4
- 238000012544 monitoring process Methods 0.000 claims description 4
- 230000001186 cumulative effect Effects 0.000 claims description 3
- 238000007405 data analysis Methods 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 16
- 238000013528 artificial neural network Methods 0.000 description 9
- 230000007787 long-term memory Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 230000008034 disappearance Effects 0.000 description 5
- 230000007774 longterm Effects 0.000 description 5
- 238000004880 explosion Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000015654 memory Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- YHXISWVBGDMDLQ-UHFFFAOYSA-N moclobemide Chemical compound C1=CC(Cl)=CC=C1C(=O)NCCN1CCOCC1 YHXISWVBGDMDLQ-UHFFFAOYSA-N 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 238000007637 random forest analysis Methods 0.000 description 2
- 230000006403 short-term memory Effects 0.000 description 2
- 238000012706 support-vector machine Methods 0.000 description 2
- 229930002875 chlorophyll Natural products 0.000 description 1
- 235000019804 chlorophyll Nutrition 0.000 description 1
- ATNHDLDRLWWWCB-AENOIHSZSA-M chlorophyll a Chemical compound C1([C@@H](C(=O)OC)C(=O)C2=C3C)=C2N2C3=CC(C(CC)=C3C)=[N+]4C3=CC3=C(C=C)C(C)=C5N3[Mg-2]42[N+]2=C1[C@@H](CCC(=O)OC\C=C(/C)CCC[C@H](C)CCC[C@H](C)CCCC(C)C)[C@H](C)C2=C5 ATNHDLDRLWWWCB-AENOIHSZSA-M 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000003344 environmental pollutant Substances 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000007935 neutral effect Effects 0.000 description 1
- 231100000719 pollutant Toxicity 0.000 description 1
- 238000012887 quadratic function Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/04—Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0639—Performance analysis of employees; Performance analysis of enterprise or organisation operations
- G06Q10/06395—Quality analysis or management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/06—Energy or water supply
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02A—TECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
- Y02A20/00—Water conservation; Efficient water supply; Efficient water use
- Y02A20/152—Water filtration
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Human Resources & Organizations (AREA)
- Economics (AREA)
- Strategic Management (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Entrepreneurship & Innovation (AREA)
- Marketing (AREA)
- Development Economics (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Educational Administration (AREA)
- General Health & Medical Sciences (AREA)
- Operations Research (AREA)
- Game Theory and Decision Science (AREA)
- Quality & Reliability (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Primary Health Care (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Public Health (AREA)
- Water Supply & Treatment (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了基于XGBoost‑LSTM预测模型的水质预测方法,属于数据分析和预测领域,包括获取数据,对数据进行归一化和异常值处理;将处理后的数据进行主成分和相关性分析,根据分析结果对整体数据降维;将降维后的数据输入XGB进行特征处理并提取,选择合适的变量;将输入的变量特征对XGB进行训练,确定XGB的各项参数;将XGB特征处理和提取后得到的数据分别输入XGB和LSTM进行数据预测;使用误差倒数法融合XGB和LSTM,得到XGBoost‑LSTM预测模型;将XGB特征处理提取得到的数据输入到预测模型得到预测结果。本发明降低了LSTM的误差且提高了运算速度,提高了水质预测的准确度。
Description
技术领域
本发明涉及数据分析和数据预测领域,尤其是基于XGBoost-LSTM预测模型的水质预测方法。
背景技术
海洋在人类生活中占据重要位置,但在工业化的发展过程中陆地上的各种污染物进入海洋,使得海洋的水质发生了剧烈变化,海洋水质污染也日趋严重。海洋水质的恶劣变化对沿海地区海洋环境、海洋渔业产生了严重影响,甚至对人类健康和生命也造成了严重威胁,所以需要对海洋水质的变化进行精准预测以采取措施扼制水质变化,于此同时海洋水质变化过程中单个指标变化幅度尤为剧烈,预示着预测的范围从宏观层面转移到了微观层面,单个指标预测变得越来越重要。
现有技术中,海水水质常见预测方法有差分整合移动平均自回归(AutoRegressive Iintegrated Moving a average,ARIMA)预测模型、支持向量机(Support Vector Machine,SVM)预测模型、支持向量回归(Support Vector Regression,SVR)预测模型、随机森林(Random Forest)预测模型、人工神经网络(Artificial NeutralNetwork,ANN)预测模型等。ARIMA预测模型只能预测稳定且线性关系的海水数据,SVM预测模型和SVR预测模型在面对大量数据时计算时间长、计算误差较大;直到ANN的提出,推动了水质预测的进一步发展,ANN预测模型在大量数据处理上有极大优势,但ANN预测模型存在收敛速度较慢的情况,之后提出的循环神经网络(Recurrent Neural Network,RNN)虽有效提升了收敛速度,但在数据处理中存在梯度消失和梯度***的问题,因而无法保存过长数据。长短期记忆网络(LSTM,Long Short-Term Memory,LSTM)在RNN的基础上增加了一组输入和一组输出,增加了对过去状态的过滤,解决了梯度***的问题,同时其具有长时记忆功能,在序列建模上有一定优势,实现起来相对简单,在长远的更为复杂的任务上有独特优势。
RNN的缺点在于不擅长捕捉长期数据中的数据特征,在预测过程中随着预测时间边长和数据增多发生梯度消失,长短期记忆网络LSTM通过添加门模块解决了RNN的梯度消失和梯度***问题,从而解决模型长期数据处理问题。但RNN中存在的问题同样在LSTM中存在:
(1)当数据量级较低时LSTM对数据的处理很稳定,当数据量较高时同样会发生梯度消失和梯度***问题;
(2)LSTM相较于RNN内部结构更为复杂,因而训练效率在同等算力下相较于RNN要低很多,如果LSTM训练使用的数据集的时间跨度很大,且网络很深的情况下,计算量会很大,消耗时间很长。
所以,有必要研发一种能够降低LSTM处理的数据量,同时提高LSTM训练时间、提高水质预测准确度的海洋水质预测方法。
发明内容
本发明需要解决的技术问题是提供一种基于XGBoost-LSTM预测模型的水质预测方法,根据LSTM的缺点,使用极端梯度提升算法(eXreme Gradient Boosting,XGB)构建XGBoost-LSTM预测模型,以降低LSTM处理的数据量,同时提高LSTM训练时间,提高短期海洋pH水质指标预测准确度。
为解决上述技术问题,本发明所采用的技术方案是:
一种基于XGBoost-LSTM预测模型的水质预测方法,包括以下步骤:
步骤1,获取海洋水质监测数据,对数据进行归一化处理并对异常值进行处理;将处理后的数据进行主成分分析和相关性分析,根据两个分析结果对整体数据降维,选择高相关性数据构造特征;
步骤2,将步骤1降维处理后的数据输入XGBoost预测模型进行特征处理并特征提取,使用重要性直方图选择合适数据表里作为合适的变量;
步骤3,将输入的变量特征对XGBoost预测模型进行训练,确定XGBoost预测模型的各项参数设定;
步骤4,将XGBoost预测模型特征处理和提取后得到的数据分别输入XGBoost预测型和LSTM预测模型进行数据预测;
步骤5,使用误差倒数法融合XGBoost预测模型和LSTM预测模型,得到XGBoost-LSTM预测模型;
步骤6,将XGBoost预测模型特征处理提取得到的数据输入到XGBoost-LSTM预测模型得到预测结果。
本发明技术方案的进一步改进在于:步骤1中,对归一化处理并对异常值进行处理后的数据进行主成分分析,选择特征值大于1且满足累积方差百分比>80%的成分进行数据降维,通过旋转后的主成分矩阵分析提取成分中各变量占比,选择高相关性的数据构造特征。
本发明技术方案的进一步改进在于:步骤2中,通过特征重要性直方图趋势判断法来判别提取特征中的重要特征,选择合适的指标进行后续预测运算,根据变量变化直方图得出特征pH变化幅度最大,且在总体数据中pH对海水水质变化影响最大,因而选择pH作为海水水质预测指标。
本发明技术方案的进一步改进在于:步骤5中,组合XGBoost-LSTM预测模型预测是先利用XGBoost预测模型和LSTM预测模型进行预测,需要在实验开始前设置好参数的取值范围和步长,在训练过程中会按照设定好的范围和步长运行,最终通过模型的预测指标来判断最优参数值;在进行范围和步长设置过程中,数值过大会造成幅度变化过大,跳过最优值,数值过小又会造成训练时间过长,提高了训练成本;通过多次实验,比较训练模型的运行时间和模型拟合效果,寻找最佳取值范围和训练步长;
所述误差倒数法相关公式如下:
ft=w1fX+w2fL,t=1,2,3 (15)
式中,fX代表XGBoost预测模型所得的预测值,fL代表LSTM预测模型所得的预测值,w1,w2分别代表XGBoost预测模型和LSTM预测模型的权重系数,ε1,ε2分别代表XGBoost及LSTM的误差;
由式(15)~(17)知,模型误差越小,权值系数越大,最终的混合模型整体误差越小,从而提高预测的精度。
由于采用了上述技术方案,本发明取得的技术进步是:
1、本发明在LSTM预测模型的基础上,根据LSTM的缺点,使用极端梯度提升算法XGB构建XGBoost-LSTM预测模型,通过降低数据处理维度和特征提取,有效降低了LSTM预测模型的误差并且提高了运算速度,应用XGBoost-LSTM预测模型进行短期海洋pH水质指标预测,有效的提高了水质预测的准确度。
2、本发明中利用XGBoost预测模型有效提取了输入数据的特征并以这些特征组成新的输入向量,通过误差倒数法将XGBoost预测模型和LSTM预测模型以不同权重组合,构建XGBoost-LSTM预测模型,将XGBoost预测模型提取的特征向量作为输入进行混合模型预测,有效的提高了预测模型的运算速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做以简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图;
图1是本发明实施例中XGBoost-LSTM预测模型的总体预测流程图;
图2是本发明实施例中LSTM预测模型结构示意图;
图3是本发明实施例中变量相对重要性成分示意图;
图4是本发明实施例中LSTM训练集与测试集MAE对比图一(未调参);
图5是本发明实施例中LSTM训练集与测试集MAE对比图二(调参);
图6是本发明实施例中XGBoost训练集与测试集RMSE对比图一(未调参);
图7是本发明实施例中XGBoost训练集与测试集RMSE对比图二(调参);
图8是本发明实施例中XGBoost,LSTM,XGBoost-LSTM拟合结果对比图一(未调参);
图9是本发明实施例中XGBoost,LSTM,XGBoost-LSTM拟合结果对比图二(调参);
图10是本发明实施例中为相关性矩阵列表图;
图11是本发明实施例中方差及主要成分贡献率列表图;
图12是本发明实施例中旋转后的成分矩阵列表图。
具体实施方式
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例通过提供一种基于XGBoost-LSTM预测模型的水质预测方法,解决了现有技术中存在的“LSTM处理的数据量大、LSTM训练时间长、水质预测准确度低”的问题,大体思路为:将XGBoost预测模型和LSTM预测模型进行组合,先用XGBoost预测模型进行初步预测,预测结果作为新特征输入,再使用误差倒数法将XGBoost预测模型和LSTM预测模型加权组合构建GBoost-LSTM预测模型,针对海洋短期水质进行预测。
下面结合附图及实施例对本发明做进一步详细说明:
如图1所示,一种基于XGBoost-LSTM预测模型的水质预测方法,包括以下步骤:
步骤1,获取海洋水质监测数据,对数据进行归一化处理并对异常值进行处理;将处理后的数据进行主成分分析和相关性分析,根据两个分析结果对整体数据降维,选择高相关性数据构造特征;
具体的,对归一化处理并对异常值进行处理后的数据进行主成分分析,选择特征值大于1且满足累积方差百分比>80%的成分进行数据降维,通过旋转后的主成分矩阵分析提取成分中各变量占比,选择高相关性的数据构造特征。
步骤2,将步骤1降维处理后的数据输入XGBoost预测模型进行特征处理并特征提取,使用重要性直方图选择合适数据表里作为合适的变量;
具体的,如图3所示,通过特征重要性直方图趋势判断法来判别提取特征中的重要特征,选择合适的指标进行后续预测运算,根据变量变化直方图得出特征pH变化幅度最大,且在总体数据中pH对海水水质变化影响最大,因而选择pH作为海水水质预测指标。
步骤3,将输入的变量特征对XGBoost预测模型进行训练,确定XGBoost预测模型的各项参数设定;
具体的,XGBoost是一种提升树模型,它由多个弱分类器集成而构建强分类器,他的原理是就是对经验损失函数进行优化,通过多次迭代来拟合损失函数的负梯度,最终由线性搜索方法来确定一个最优的弱分类器,这就是XGBoost预测模型。
树的集成模型:
XGBoost的目标函数为式(2)(3)
上述式(2)中:的作用是实际值的预测误差与模型预测结果的处理;式(3)的作用是求出树的复杂度的和,用于控制模型复杂程度的正则项;γ代表控制叶子节点的数量;T代表叶子节点的数量;λ代表控制叶子结点的分数;ω代表叶子节点的分数;XGBoost通过正则化的使用避免模型过拟合。
XGBoost每次迭代后,目标函数为:
为了找到最小化目标ft,在ft=0处进行泰勒二次展开,目标函数如下:
通过式(5)对数据的损失函数值求和,目标函数为:
由式(6)得出:目标函数已被转化为一个一元二次的函数,可以求出目标函数值和最优ω,结果由式(7)(8)得出:
步骤4,将XGBoost预测模型特征处理和提取后得到的数据分别输入XGBoost预测模型和LSTM预测模型进行数据预测;
具体的,LSTM网络源于时间循环神经网络(RNN),其在RNN基础上进行改良。相比RNN,LSTM网络解决了梯度消失的问题,同时其在处理时序信息的长期依赖问题上有较强的可靠性,具有长短期记忆功能,LSTM网络隐藏层中的单元是线性自循环存储单元,允许长期保存梯度。其所包含自连接存储单元的存储块能够存储时间状态,进出存储块的信息流可由3个门控制。因此,LSTM可处理长期和短期时间序列情况下的问题。LSTM已经在许多场景中获得使用。
如图2所示,从左侧开始,前一个时间步的循环核数据ht-1和第t个时间的输入特征xt会合,进入σ(sigmood)激活函数的神经网络层,生成结果在(0,1)的ft,Ct表示细胞状态,当Ct为0时数据全部遗忘,当Ct为1时数据全部保留,wf与bf矩阵为待定系数,通过参与训练得到结果,ft计算公式如下:
ft=Sigmoid(wf[ht-1,xt]+bf) (9)
第二步为数据输入结果和添加的细胞态的候选向量进行点乘,得出结果,第二步的计算公式如下:
it=Sigmoid(wi[ht-1,xt]+bi) (10)
Ct=tanh(wC[ht-1,xt]+bC) (11)
式中,tanh的范围为[-1,1];同样wf与bf矩阵为待定系数,通过参与训练得到结果。
将Ct-1和C′t通过线性叠加确定Ct,Ct中包含t时刻和t-1时刻的相应比例的遗留信息,Ct的表达式如下:
Ct=ft·Ct-1+i·Ct (12)
最后,输出数据ht分为两个部分,分别输出到当前层的下个单元和输出到下一层单元通过一层sigmood激活函数的神经网络层,可表示为:
Ot=Sigmoid(wO[ht-1,xt]+b0) (13)
ht=Ot*tanh(Ct) (14)
由上述各式,LSTM模型在RNN模型的基础上实现了长期记忆。
步骤5,使用误差倒数法融合XGBoost预测模型和LSTM预测模块,得到XGBoost-LSTM预测模型;
具体的,组合模型预测是先利用XGBoost预测模型和LSTM预测模型进行预测,需要在实验开始前设置好参数的取值范围和步长,在训练过程中会按照设定好的范围和步长运行,最终通过模型的预测指标来判断最优参数值。在进行范围和步长设置过程中,数值过大会造成幅度变化过大,跳过最优值,数值过小又会造成训练时间过长,提高了训练成本。通过多次实验,比较训练模型的运行时间和模型拟合效果,寻找最佳取值范围和训练步长。公式(15)(16)(17)为误差倒数法相关公式:
ft=w1fX+w2fL,t=1,2,3 (15)
式中,fX代表XGBoost预测模型所得的预测值,fL代表LSTM预测模型所得的预测值,w1,w2分别代表XGBoost预测模型和LSTM预测模型的权重系数,ε1,ε2分别代表XGBoost及LSTM的误差。
由上述三式(15)~(17)可知,模型误差越小,权值系数越大,最终的混合模型整体误差越小,从而提高预测的精度。
步骤6,将XGBoost预测模型特征处理提取得到的数据输入到XGBoost-LSTM预测模型得到海洋水质预测结果。
将步骤6所得的结果与单个LSTM预测模型,XGBoost预测模型进行数据预测并进行比较,根据最终结果确定混合模型在降低误差和提高运算速度上效果良好。
如图4-9所示,使用平均绝对误差MAE,均方误差MSE,均方根误差RMSE作为性能评价指标,评价XGBoost预测模型,LSTM预测模型,XGBoost-LSTM预测模型。XGBoost-LSTM预测模型的水质检测结果均优于XGBoost预测模型可LSTM预测模型的预测结果。
实施例
本实施例的实验数据来源于某省某市水质监测站2019年采集的海洋水质数据,影响水质的因素包含温度Temp_C、电导度SpCond_mS、导电率Cond_mS、盐度Sal、pH、浊度Turb_NTU、叶绿素Chl_ppb等13个变量。通过相关性分析(如10所示)得出各变量相关性,神经网络模型在进行数据处理中,数据有时会陷入局部僵直,因而需要对输入数据进行归一化处理,将数据标准化至(0,1)内以便提升训练精度和训练速度,对原有的13个变量进行归一化处理,降维和特征选择。如图11所示,列出了方差及主要成分贡献率,图12所示,列出了旋转后的成分矩阵列。
首先对输入数据进行数据迭代,迭代过程中的数据结果如下:
Epoch 1/10时间-2s 177us/sample-loss:0.3341e-04-val_loss:1.7527e-04
Epoch 2/10时间-2s 168us/sample-loss:2.4825e-04-val_loss:2.7427e-05
Epoch 3/10时间-2s 134us/sample-loss:2.4663e-04-val_loss:1.1214e-04
Epoch 4/10时间-2s 124us/sample-loss:2.4692e-04-val_loss:8.3133e-05
Epoch 5/10时间-2s 121us/sample-loss:2.4533e-04-val_loss:1.7687e-04
Epoch 6/10时间-2s 125us/sample-loss:2.4658e-04-val_loss:3.7632e-05
Epoch 7/10时间-2s 143us/sample-loss:2.4594e-04-val_loss:1.1184e-04
Epoch 8/10时间-2s 120us/sample-loss:2.4583e-04-val_loss:1.7207e-04
Epoch 9/10时间-2s 137us/sample-loss:2.4567e-04-val_loss:3.3229e-05
Epoch 10/10时间-2s 122us/sample-loss:2.4567e-04-val_loss:2.5970e-04
预测过程中随迭代次数变化的均方根误差(RMSE)如下:
[0]validation_0-rmse:0.47381validation_1-rmse:0.47384
[1]validation_0-rmse:0.45014 validation_1-rmse:0.45016
[2]validation_0-rmse:0.42765 validation_1-rmse:0.42767
[3]validation_0-rmse:0.40629 validation_1-rmse:0.40629
[4]validation_0-rmse:0.38599 validation_1-rmse:0.38599
[5]validation_0-rmse:0.36671 validation_1-rmse:0.36670
[6]validation_0-rmse:0.34840 validation_1-rmse:0.34837
[7]validation_0-rmse:0.33100 validation_1-rmse:0.33097
[8]validation_0-rmse:0.31447 validation_1-rmse:0.31443
[9]validation_0-rmse:0.29878 validation_1-rmse:0.29872
[10]validation_0-rmse:0.28386 validation_1-rmse:0.28379
[11]validation_0-rmse:0.26970 validation_1-rmse:0.26961
[12]validation_0-rmse:0.25624 validation_1-rmse:0.25614
[13]validation_0-rmse:0.24346 validation_1-rmse:0.24334
[14]validation_0-rmse:0.23131 validation_1-rmse:0.23119
[15]validation_0-rmse:0.21978 validation_1-rmse:0.21964
[16]validation_0-rmse:0.20883 validation_1-rmse:0.20866
[17]validation_0-rmse:0.19842 validation_1-rmse:0.19824
[18]validation_0-rmse:0.18854 validation_1-rmse:0.18834
[19]validation_0-rmse:0.17915 validation_1-rmse:0.17893
[20]validation_0-rmse:0.17023 validation_1-rmse:0.16999
[21]validation_0-rmse:0.16176 validation_1-rmse:0.16150
[22]validation_0-rmse:0.15372 validation_1-rmse:0.15344
[23]validation_0-rmse:0.14608 validation_1-rmse:0.14578
[24]validation_0-rmse:0.13883 validation_1-rmse:0.13850
[25]validation_0-rmse:0.13194 validation_1-rmse:0.13158
[26]validation_0-rmse:0.12540 validation_1-rmse:0.12501
[27]validation_0-rmse:0.11919 validation_1-rmse:0.11877
[28]validation_0-rmse:0.11329 validation_1-rmse:0.11284
[29]validation_0-rmse:0.10769 validation_1-rmse:0.10721
[30]validation_0-rmse:0.10238 validation_1-rmse:0.10186
[31]validation_0-rmse:0.09733 validation_1-rmse:0.09677
[32]validation_0-rmse:0.09254 validation_1-rmse:0.09194
[33]validation_0-rmse:0.08799 validation_1-rmse:0.08736
[34]validation_0-rmse:0.08367 validation_1-rmse:0.08300
[35]validation_0-rmse:0.07958 validation_1-rmse:0.07886
[36]validation_0-rmse:0.07569 validation_1-rmse:0.07492
[37]validation_0-rmse:0.07200 validation_1-rmse:0.07119
[38]validation_0-rmse:0.06850 validation_1-rmse:0.06764
[39]validation_0-rmse:0.06519 validation_1-rmse:0.06427
[40]validation_0-rmse:0.06204 validation_1-rmse:0.06106
[41]validation_0-rmse:0.05906 validation_1-rmse:0.05802
[42]validation_0-rmse:0.05623 validation_1-rmse:0.05513
[43]validation_0-rmse:0.05352 validation_1-rmse:0.05237
[44]validation_0-rmse:0.05096 validation_1-rmse:0.04976
[45]validation_0-rmse:0.04852 validation_1-rmse:0.04728
[46]validation_0-rmse:0.04622 validation_1-rmse:0.04492
[47]validation_0-rmse:0.04404 validation_1-rmse:0.04268
[48]validation_0-rmse:0.04197 validation_1-rmse:0.04055
[49]validation_0-rmse:0.04001 validation_1-rmse:0.03853
[50]validation_0-rmse:0.03815 validation_1-rmse:0.03661
[51]validation_0-rmse:0.03639 validation_1-rmse:0.03478
[52]validation_0-rmse:0.03473 validation_1-rmse:0.03305
[53]validation_0-rmse:0.03316 validation_1-rmse:0.03140
[54]validation_0-rmse:0.03167 validation_1-rmse:0.02984
[55]validation_0-rmse:0.03027 validation_1-rmse:0.02835
[56]validation_0-rmse:0.02894 validation_1-rmse:0.02694
[57]validation_0-rmse:0.02769 validation_1-rmse:0.02560
[58]validation_0-rmse:0.02651 validation_1-rmse:0.02432
[59]validation_0-rmse:0.02540 validation_1-rmse:0.02311
[60]validation_0-rmse:0.02435 validation_1-rmse:0.02196
[61]validation_0-rmse:0.02336 validation_1-rmse:0.02087
[62]validation_0-rmse:0.02243 validation_1-rmse:0.01983
[63]validation_0-rmse:0.02156 validation_1-rmse:0.01885
[64]validation_0-rmse:0.02074 validation_1-rmse:0.01791
[65]validation_0-rmse:0.01991 validation_1-rmse:0.01702
[66]validation_0-rmse:0.01913 validation_1-rmse:0.01617
[67]validation_0-rmse:0.01839 validation_1-rmse:0.01536
[68]validation_0-rmse:0.01770 validation_1-rmse:0.01459
[69]validation_0-rmse:0.01705 validation_1-rmse:0.01387
[70]validation_0-rmse:0.01644 validation_1-rmse:0.01317
[71]validation_0-rmse:0.01586 validation_1-rmse:0.01252
[72]validation_0-rmse:0.01532 validation_1-rmse:0.01189
[73]validation_0-rmse:0.01482 validation_1-rmse:0.01130
[74]validation_0-rmse:0.01435 validation_1-rmse:0.01073
[75]validation_0-rmse:0.01391 validation_1-rmse:0.01020
[76]validation_0-rmse:0.01349 validation_1-rmse:0.00969
[77]validation_0-rmse:0.01311 validation_1-rmse:0.00921
[78]validation_0-rmse:0.01275 validation_1-rmse:0.00875
[79]validation_0-rmse:0.01241 validation_1-rmse:0.00831
[80]validation_0-rmse:0.01210 validation_1-rmse:0.00790
[81]validation_0-rmse:0.01181 validation_1-rmse:0.00751
[82]validation_0-rmse:0.01155 validation_1-rmse:0.00713
[83]validation_0-rmse:0.01130 validation_1-rmse:0.00678
[84]validation_0-rmse:0.01107 validation_1-rmse:0.00644
[85]validation_0-rmse:0.01086 validation_1-rmse:0.00612
[86]validation_0-rmse:0.01066 validation_1-rmse:0.00581
[87]validation_0-rmse:0.01048 validation_1-rmse:0.00552
[88]validation_0-rmse:0.01031 validation_1-rmse:0.00525
[89]validation_0-rmse:0.01015 validation_1-rmse:0.00499
[90]validation_0-rmse:0.01001 validation_1-rmse:0.00474
[91]validation_0-rmse:0.00988 validation_1-rmse:0.00450
[92]validation_0-rmse:0.00976 validation_1-rmse:0.00428
[93]validation_0-rmse:0.00965 validation_1-rmse:0.00407
[94]validation_0-rmse:0.00955 validation_1-rmse:0.00387
[95]validation_0-rmse:0.00945 validation_1-rmse:0.00367
[96]validation_0-rmse:0.00937 validation_1-rmse:0.00349
[97]validation_0-rmse:0.00929 validation_1-rmse:0.00332
[98]validation_0-rmse:0.00922 validation_1-rmse:0.00315
[99]validation_0-rmse:0.00915 validation_1-rmse:0.00300
[100]validation_0-rmse:0.00909 validation_1-rmse:0.00285
[101]validation_0-rmse:0.00904 validation_1-rmse:0.00271
[102]validation_0-rmse:0.00898 validation_1-rmse:0.00257
[103]validation_0-rmse:0.00894 validation_1-rmse:0.00245
[104]validation_0-rmse:0.00890 validation_1-rmse:0.00232
[105]validation_0-rmse:0.00886 validation_1-rmse:0.00221
[106]validation_0-rmse:0.00882 validation_1-rmse:0.00210
[107]validation_0-rmse:0.00879 validation_1-rmse:0.00200
[108]validation_0-rmse:0.00876 validation_1-rmse:0.00190
[109]validation_0-rmse:0.00873 validation_1-rmse:0.00180
[110]validation_0-rmse:0.00871 validation_1-rmse:0.00172
[111]validation_0-rmse:0.00869 validation_1-rmse:0.00163
[112]validation_0-rmse:0.00868 validation_1-rmse:0.00155
[113]validation_0-rmse:0.00866 validation_1-rmse:0.00147
[114]validation_0-rmse:0.00864 validation_1-rmse:0.00140
[115]validation_0-rmse:0.00862 validation_1-rmse:0.00133
[116]validation_0-rmse:0.00861 validation_1-rmse:0.00127
[117]validation_0-rmse:0.00859 validation_1-rmse:0.00121
[118]validation_0-rmse:0.00858 validation_1-rmse:0.00115
[119]validation_0-rmse:0.00857 validation_1-rmse:0.00109
[120]validation_0-rmse:0.00856 validation_1-rmse:0.00104
[121]validation_0-rmse:0.00855 validation_1-rmse:0.00099
[122]validation_0-rmse:0.00854 validation_1-rmse:0.00094
[123]validation_0-rmse:0.00853 validation_1-rmse:0.00089
[124]validation_0-rmse:0.00852 validation_1-rmse:0.00085
[125]validation_0-rmse:0.00852 validation_1-rmse:0.00081
[126]validation_0-rmse:0.00851 validation_1-rmse:0.00077
[127]validation_0-rmse:0.00851 validation_1-rmse:0.00073
[128]validation_0-rmse:0.00850 validation_1-rmse:0.00069
[129]validation_0-rmse:0.00850 validation_1-rmse:0.00066
[130]validation_0-rmse:0.00849 validation_1-rmse:0.00063
[131]validation_0-rmse:0.00849 validation_1-rmse:0.00060
[132]validation_0-rmse:0.00848 validation_1-rmse:0.00057
[133]validation_0-rmse:0.00848 validation_1-rmse:0.00054
[134]validation_0-rmse:0.00848 validation_1-rmse:0.00052
[135]validation_0-rmse:0.00847 validation_1-rmse:0.00049
[136]validation_0-rmse:0.00847 validation_1-rmse:0.00047
[137]validation_0-rmse:0.00847 validation_1-rmse:0.00044
[138]validation_0-rmse:0.00847 validation_1-rmse:0.00042
[139]validation_0-rmse:0.00847 validation_1-rmse:0.00040
[140]validation_0-rmse:0.00846 validation_1-rmse:0.00038
[141]validation_0-rmse:0.00846 validation_1-rmse:0.00036
[142]validation_0-rmse:0.00846 validation_1-rmse:0.00034
[143]validation_0-rmse:0.00846 validation_1-rmse:0.00033
[144]validation_0-rmse:0.00846 validation_1-rmse:0.00031
[145]validation_0-rmse:0.00846 validation_1-rmse:0.00030
[146]validation_0-rmse:0.00846 validation_1-rmse:0.00028
[147]validation_0-rmse:0.00846 validation_1-rmse:0.00027
[148]validation_0-rmse:0.00846 validation_1-rmse:0.00026
[149]validation_0-rmse:0.00846 validation_1-rmse:0.00025
[150]validation_0-rmse:0.00846 validation_1-rmse:0.00023
[151]validation_0-rmse:0.00845 validation_1-rmse:0.00022
[152]validation_0-rmse:0.00845 validation_1-rmse:0.00021
[153]validation_0-rmse:0.00845 validation_1-rmse:0.00020
[154]validation_0-rmse:0.00845 validation_1-rmse:0.00019
[155]validation_0-rmse:0.00845 validation_1-rmse:0.00018
[156]validation_0-rmse:0.00845 validation_1-rmse:0.00018
[157]validation_0-rmse:0.00845 validation_1-rmse:0.00017
[158]validation_0-rmse:0.00845 validation_1-rmse:0.00016
[159]validation_0-rmse:0.00845 validation_1-rmse:0.00015
[160]validation_0-rmse:0.00845 validation_1-rmse:0.00015
[161]validation_0-rmse:0.00845 validation_1-rmse:0.00014
[162]validation_0-rmse:0.00845 validation_1-rmse:0.00014
[163]validation_0-rmse:0.00845 validation_1-rmse:0.00013
[164]validation_0-rmse:0.00845 validation_1-rmse:0.00013
[165]validation_0-rmse:0.00845 validation_1-rmse:0.00012
[166]validation_0-rmse:0.00845 validation_1-rmse:0.00012
[167]validation_0-rmse:0.00845 validation_1-rmse:0.00011
[168]validation_0-rmse:0.00845 validation_1-rmse:0.00011
[169]validation_0-rmse:0.00845 validation_1-rmse:0.00010
[170]validation_0-rmse:0.00845 validation_1-rmse:0.00010
[171]validation_0-rmse:0.00845 validation_1-rmse:0.00009
[172]validation_0-rmse:0.00845 validation_1-rmse:0.00009
[173]validation_0-rmse:0.00845 validation_1-rmse:0.00009
[174]validation_0-rmse:0.00845 validation_1-rmse:0.00008
[175]validation_0-rmse:0.00845validation_1-rmse:0.00008
[176]validation_0-rmse:0.00845validation_1-rmse:0.00008
[177]validation_0-rmse:0.00845validation_1-rmse:0.00007
[178]validation_0-rmse:0.00845validation_1-rmse:0.00007
[179]validation_0-rmse:0.00845validation_1-rmse:0.00007
对XGBoost预测模型进行参数设置,如表1所示:
表1 XGBoost预测模型的参数设置
参数名 | 参数值设置 |
Max_depth树的最大高度 | 6 |
Learning_rate学习率 | 0.05 |
Random_state随机状态 | 42 |
n_estimators迭代次数 | 180 |
将XGBoost-LSTM预测模型与XGBoost预测模型、LSTM预测模型的结果进行对比,本申请的XGBoost-LSTM预测模型提出的混合模型以误差导数法求得权重系数进行加权组合,将XGBoost神经网络和LSTM神经网络进行组合,相比单一神经网络组合网络误差有效降低。混合模型XGBoost-LSTM预测模型有效结合XGBoost预测模型和LSTM预测模型的特点,根据实验结果,混合神经网络模型XGBoost-LSTM预测模型能够有效降低运算时间,并且能够有效提高短期水质指标预测精度。如表2所示:
表2各模型均方误差(MSE)及运行时间
由表2可知,最终得到的XGBoost预测模型、LSTM预测模型、XGBoost-LSTM预测模型的均方误差(MSE)分别为:XGBoost-6.892819157390795e-08、LSTM-4.855228250893297e-08、XGBoost-LSTM-1.1998420298948699e-08;由数据知XGBoost-LSTM预测模型的误差最小,准确度最高。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (4)
1.一种基于XGBoost-LSTM预测模型的水质预测方法,其特征在于:包括以下步骤:
步骤1,获取海洋水质监测数据,对数据进行归一化处理并对异常值进行处理;将处理后的数据进行主成分分析和相关性分析,根据两个分析结果对整体数据降维,选择高相关性数据构造特征;
步骤2,将步骤1降维处理后的数据输入XGBoost预测模型进行特征处理并特征提取,使用重要性直方图选择合适数据表里作为合适的变量;
步骤3,将输入的变量特征对XGBoost预测模型进行训练,确定XGBoost预测模型的各项参数设定;
步骤4,将XGBoost预测模型特征处理和提取后得到的数据分别输入XGBoost预测型和LSTM预测模型进行数据预测;
步骤5,使用误差倒数法融合XGBoost预测模型和LSTM预测模型,得到XGBoost-LSTM预测模型;
步骤6,将XGBoost预测模型特征处理提取得到的数据输入到XGBoost-LSTM预测模型得到预测结果。
2.根据权利要求1所述的一种基于XGBoost-LSTM预测模型的水质预测方法,其特征在于:步骤1中,对归一化处理并对异常值进行处理后的数据进行主成分分析,选择特征值大于1且满足累积方差百分比>80%的成分进行数据降维,通过旋转后的主成分矩阵分析提取成分中各变量占比,选择高相关性的数据构造特征。
3.根据权利要求1所述的一种基于XGBoost-LSTM预测模型的水质预测方法,其特征在于:步骤2中,通过特征重要性直方图趋势判断法来判别提取特征中的重要特征,选择合适的指标进行后续预测运算,根据变量变化直方图得出特征pH变化幅度最大,且在总体数据中pH对海水水质变化影响最大,因而选择pH作为海水水质预测指标。
4.根据权利要求1所述的一种基于XGBoost-LSTM预测模型的水质预测方法,其特征在于:步骤5中,组合XGBoost-LSTM预测模型预测是先利用XGBoost预测模型和LSTM预测模型进行预测,需要在实验开始前设置好参数的取值范围和步长,在训练过程中会按照设定好的范围和步长运行,最终通过模型的预测指标来判断最优参数值;在进行范围和步长设置过程中,数值过大会造成幅度变化过大,跳过最优值,数值过小又会造成训练时间过长,提高了训练成本;通过多次实验,比较训练模型的运行时间和模型拟合效果,寻找最佳取值范围和训练步长;
所述误差倒数法相关公式如下:
ft=w1fX+w2fL,t=1,2,3(15)
式中,fX代表XGBoost预测模型所得的预测值,fL代表LSTM预测模型所得的预测值,W1,w2分别代表XGBoost预测模型和LSTM预测模型的权重系数,ε1,ε2分别代表XGBoost及LSTM的误差;
由式(15)~(17)知,模型误差越小,权值系数越大,最终的混合模型整体误差越小,从而提高预测的精度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310274275.3A CN116432832A (zh) | 2023-03-21 | 2023-03-21 | 基于XGBoost-LSTM预测模型的水质预测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310274275.3A CN116432832A (zh) | 2023-03-21 | 2023-03-21 | 基于XGBoost-LSTM预测模型的水质预测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116432832A true CN116432832A (zh) | 2023-07-14 |
Family
ID=87080724
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310274275.3A Pending CN116432832A (zh) | 2023-03-21 | 2023-03-21 | 基于XGBoost-LSTM预测模型的水质预测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116432832A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117875506A (zh) * | 2024-01-16 | 2024-04-12 | 盐城工学院 | 一种基于lstm神经网络模型的养殖尾水预测处理方法 |
-
2023
- 2023-03-21 CN CN202310274275.3A patent/CN116432832A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117875506A (zh) * | 2024-01-16 | 2024-04-12 | 盐城工学院 | 一种基于lstm神经网络模型的养殖尾水预测处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kumar et al. | Pruning filters with L1-norm and capped L1-norm for CNN compression | |
CN111148118B (zh) | 基于时间序列的流量预测和载波关断方法和*** | |
CN106022954B (zh) | 基于灰色关联度的多重bp神经网络负荷预测方法 | |
CN113554466B (zh) | 一种短期用电量预测模型构建方法、预测方法和装置 | |
CN111738477B (zh) | 基于深层特征组合的电网新能源消纳能力预测方法 | |
CN110782658A (zh) | 一种基于LightGBM算法的交通量预测方法 | |
CN109308544B (zh) | 基于对比散度-长短期记忆网络的蓝藻水华预测方法 | |
CN110555989A (zh) | 一种基于Xgboost算法的交通量预测方法 | |
CN117117859B (zh) | 基于神经网络的光伏发电功率预测方法及*** | |
CN112504682A (zh) | 基于粒子群优化算法的底盘发动机故障诊断方法及*** | |
CN116432832A (zh) | 基于XGBoost-LSTM预测模型的水质预测方法 | |
CN114266416A (zh) | 基于相似日的光伏发电功率短期预测方法、装置及存储介质 | |
CN116245019A (zh) | 一种基于Bagging抽样及改进随机森林算法的负荷预测方法、***、装置及存储介质 | |
CN112884149A (zh) | 一种基于随机敏感度st-sm的深度神经网络剪枝方法及*** | |
CN115640901A (zh) | 一种基于混合神经网络和生成对抗的小样本负荷预测方法 | |
CN115147645A (zh) | 基于多特征信息融合的膜组件膜污染检测方法 | |
CN109408896B (zh) | 一种污水厌氧处理产气量多元智能实时监控方法 | |
CN114186412A (zh) | 基于自注意力机制的水电站水轮机顶盖长序列水位预测***及方法 | |
CN114118401A (zh) | 基于神经网络的配电网络流量预测方法、***、装置及存储介质 | |
Anh et al. | Wavelet-artificial neural network model for water level forecasting | |
CN110837886A (zh) | 一种基于elm-sl0神经网络的出水nh4-n软测量方法 | |
CN114781166B (zh) | 基于加权概率慢特征模型的污水处理过程软测量方法 | |
CN116412162A (zh) | 基于数字孪生模型的磁悬浮鼓风机故障诊断方法及*** | |
CN112862173B (zh) | 基于自组织深度置信回声状态网的湖库蓝藻水华预测方法 | |
CN113435321A (zh) | 一种主轴轴承状态评估方法、***、设备及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |