王春玲, 史锴源, 明 星, 丛茂勤, 刘昕悦, 郭文记
1. 北京林业大学信息学院, 北京 100083
2. 国家林业和草原局林业智能信息处理工程技术研究中心, 北京 100083
3. 中国科学院软件研究所南京软件技术研究院, 江苏 南京 210049
化学需氧量(chemical oxygen demand, COD)是以化学方法测量水样中需要被氧化的还原性物质的量。 水样在一定条件下的COD以氧化1升水样中还原性物质缩小化的氧化剂的量为指标, 折算成每升水样全部被氧化后, 需要的氧的毫克数, 以mg·L-1来表示。 COD测试可以很容易地量化水中有机物的含量。 COD最常见的应用是量化地表水(如湖泊和河流)或废水中可氧化污染物的量, 在水质监测中起到了巨大的作用。
传统的化学需氧量的检测方法有重铬酸盐滴定法和分光光度法等方法, 电化学方法和流动注射分析法也用于COD的检测, 但这些检测方法都存在检测周期较长、 消耗试剂等缺点, 对水体的批量检测也难以实现。 而利用高光谱技术和机器学习手段对水质参数进行反演近期已成为国内外热点研究问题。 高光谱技术能够获得物体连续的光谱信息, 近年来逐步应用于水农产品检测、 生物医学诊断和指导、 植被和水资源调控等领域并取得了一定成果[1-5]。 在水质参数高光谱反演建模中, 国内外学者采取机器学习方法对不同水质参数进行建模, 如总氮、 总磷、 水质浊度、 一般悬浮物、 化学需氧量等, 并取得了一定成果[6-12]。 尽管利用高光谱和机器学习手段对化学需氧量反演的研究逐步增多, 但是仍存在一定问题: 例如对高光谱数据的预处理手段不够完善, 导致数据集存在较多的噪音或者丢失波段信息, 所采用的机器学习方法拟合效果较差或机器学习模型过于复杂, 导致模型精度低或建模成本过大。
基于高光谱和机器学习技术对扬州宝带河水体COD进行反演建模。 分别使用Savitzky-Golay(SG)平滑、 多元散射校正数据(multiplicative scatter correction, MSC)以及SG平滑和MSC相结合的方法对原始光谱进行预处理。 对预处理后的全波段光谱基于多元线性回归、 随机森林、 AdaBoost、 XGBoost机器学习方法建立COD反演模型。 结合主成分分析法(principal component analysis, PCA)对全波段光谱提取特征波段, 再基于特征波段建立COD反演模型, 并对模型的精度和训练时间进行对比。
研究区位于江苏省扬州市宝带河水域(119°25′27″E, 32°24′13″N)。 研究采用ZK-UVIR-I型原位光谱水质在线监测仪(北京智科远达数据技术有限公司), 该监测仪能够实时检测水体化学需氧量信息, 并能够采集样本在400~1 000 nm之间的高光谱数据, 采集高度为3 m, 采集位置位于河岸边, 采集时间选在晴朗的白天。 由于光谱在810~1 000 nm范围内受噪声影响较大, 最终选用400~810 nm波段对光谱数据进行处理分析。 该设备共获取1 548组高光谱。 使用随机抽样的方法对采样样本进行划分, 80%用作模型训练, 20%用作模型测试。
数据处理使用windows10(64位操作系统), Intel(R)Core(TM) i5-7200U CPU @ 2.50GHZ处理器, python3.6。
1.2.1 光谱数据预处理
高光谱数据通常包含由相机或仪器产生的随机噪声和光谱变化。 光谱预处理可以减少或消除数据中与自身性质无关的信息, 降低模型的复杂性, 提高数据和模型的可解释性(鲁棒性和准确性)。 光谱数据的预处理在进行多变量分析之前是必不可少的。 SG平滑能够使光谱曲线平滑, MSC方法能够消除基线漂移和平移现象。 采用SG平滑、 MSC以及SG平滑结合MSC光谱预处理手段对原始光谱进行预处理并进行比较。
1.2.2 特征波段提取
高光谱波段由大量的波段组成, 有些波段的相关性较高而且存在冗余以及噪声等。 对特征波段的提取在一定程度上可以规避这两种情况。 PCA是一种分析、 简化数据集的方法[13], 能够最大程度提取原始数据的有效信息, 同时能够大大降低数据集维数。 选用主成分分析法对特征波段进行提取, 并对所建模型的精度、 模型训练速度进行分析比较。
1.2.3 反演模型
选取线性回归、 随机森林、 AdaBoost、 XGBoost四种机器学习建模方法。 线性回归是一种确定两个或多个变量间相互依赖定量关系的机器学习方法; 随机森林算法是决策树的集成, 通过平均决策树可以大大降低过拟合的风险, 是比单一决策树性能更优的模型[14]; Adaboost是将弱学习器结合创造一个强学习器的机器学习方法[15], 本研究将决策树作为Adaboost的弱学习器; XGBoost是一种改进的梯度提升迭代决策树(gradient boosting decision tree, GBDT)算法, 基于损失函数2阶泰勒展开进行优化并引入正则项, 同时支持多线程运算。
1.2.4 模型评估
采取RMSE,R2和RPD三个指标对反演模型进行对比和评价。
(1)
(2)
(3)
图1为样本水体的原始光谱曲线, 水体在550~600 nm的反射率较高, 在700~750 nm的反射率较低。 从图中可以看出每个水体样本曲线的变化趋势类似, 没有呈现较大的差异, 而且难以直接通过光谱曲线对其COD含量进行判断。 水体样本的COD值统计结果如表1所示, 模型的训练集与测试集都涵盖了较大的范围, 各标准差与总样本的标准差也基本一致, 满足训练以及检验的需求。
图1 水体样本原始光谱反射率曲线
表1 COD含量描述统计分析
使用三种光谱预处理方法对原始光谱进行预处理, 预处理后的光谱分布如图2(a,b,c)所示。
经过光谱预处理后, 高光谱的数据质量得到了一定改善, 但还是无法直观的从光谱曲线上判断水体的COD含量, 因此还需要通过机器学习方法对其建模进行分析。
2.3.1 机器学习模型超参数调整
在机器学习中, 超参数是在开始学习过程之前设置值的参数。 决策树的数量直接决定了随机森林、 Adaboost、 XGBoost模型的性能, 以5作为步长设定决策树的数量并对上述三个模型进行训练, 通过观察训练集均方误差(mean-square error, MSE)随决策树的数量变化调整模型的决策树数量, 最终结果如图3(a,b,c)所示。 由于随机森林模型具有随机性, 所以决策树增加时, 模型的预测性能会出现波动, 在考虑模型性能以及模型运行时间因素后, 将随机森林的决策树的数量设为175, AdaBoost的决策树数量设为200, XGBoost决策树数量设为350。
图2 水体样本预处理后的光谱分布
图3 机器学习模型中决策树数量与模型在训练集上的MSE的关系
2.3.2 反演模型精度及对比
对原始光谱数据和三种不同的预处理方法分别使用四种机器学习模型建模。 模型的反演精度与建模的训练时间如表2—表5所示。
由表2—表5中数据可以看到, XGBoost在原始光谱以及三种经过预处理数据上的建模精度均优于其他模型, 且训练时间小于随机森林模型以及Adaboost模型。 线性回归所建的反演模型表现较差, 说明COD与光谱数据并没有直接的线性关系。 在所有的模型中, 通过XGBooost对经过SG平滑和MSC处理的数据所建的反演模型精度最高, 其中R2为0.92, RMSE为7.1 mg·L-1, RPD为3.4。 通过不同预处理方式所得的XGBoost反演模型散点图如图4(a—d)所示。
表2 基于原始数据机器学习模型结果
表4 基于MSC预处理机器学习模型结果
表3 基于SG平滑预处理机器学习模型结果
表5 基于SG平滑和MSC预处理机器学习模型结果
图4 不同预处理方法下XGBoost反演模型COD预测值与实测值关系散点图
2.4.1 PCA提取特征波段
利用主成分分析法(PCA)对经过SG平滑以及MSC处理的高光谱数据进行特征提取。 图5为前10个主成分的方差贡献率, 其中前五个主成分的累计方差贡献率已经达到95%以上, 包含了原始波段的大多数信息。 最终, 为保证尽可能多地保留原始高光谱信息, 选取了前十个主成分作为特征变量用于后续的建模及预测。
图5 利用PCA方法得到的前十个主成分的方差贡献率
表6 基于PCA方法XGBoost模型的结果
2.4.2 基于特征波段的建模分析
基于XGBoost机器学习方法对特征波段建立COD反演模型, 并在测试集进行验证, 模型的精度以及模型训练时间见表6。
由表6中可以看出, 在XGBoost模型中经过PCA进行特征波段提取所建的反演模型精度高于全波段所建的反演模型, 且大大缩短了训练时间, 说明经过PCA进行波段特征提取能够一定程度上降低数据冗余。
以扬州宝带河COD为研究对象, 利用ZK-UVIR-I型原位光谱水质在线监测仪获取COD的高光谱数据及对应浓度数值, 分别采用SG平滑、 MSC以及SG平滑和MSC组合的方式对原始高光谱数据进行预处理, 并使用四种机器学习算法(线性回归模型、 随机森林模型、 AdaBoost模型、 XGBoost)建立COD反演模型。 比较了不同预处理方法和机器学习模型COD反演模型精度的影响。 基于R2, RMSE和RPD比较了这几种模型的精度, 此外还比较了各个模型的训练时间。 结果显示, 线性回归模型训练时间最短但是精度也最低。 XGBoost方法所建的反演模型精度, 最高RPD达到3.4。 XGBoost训练时间也少于随机森林和Adaboost模型。 通过PCA方式对经过SG平滑和MSC预处理后的全波段数据进行特征提取, 所提取的特征波段数为10, 最后对这10个特征波段使用XGBoost进行建模并取得了较好的效果, 而且特征波段训练时间远远低于全波段训练时间。 在实际生产过程中也可根据实际需求, 综合考虑模型精度、 模型训练时间等因素进行模型的选择。
研究结果表明, 基于机器学习的高光谱COD反演模型精度可以达到较高水平, 为机器学习在高光谱水质监测领域的应用提供了参考。 此外, 机器学习模型可解释性需要进一步研究。