XGBoost在气体红外光谱识别中的应用 下载: 872次
1 引言
气体种类识别在科学研究、生产及环境检测等领域有着广泛的应用。通过傅里叶变换红外(FTIR)光谱仪采集气体的红外光谱数据,再对这些光谱数据进行特征提取并分析,从而识别出气体种类[1-3]。这种方式具有检测重复性好、分析速度快、不需要消耗样本、可在线实时监测等特点,在气体识别领域有着广泛的应用。
当前,随着计算机科学技术的快速发展,人工智能算法在各种领域中得到了广泛的应用,尤其在分类识别领域取得了巨大的研究成果,因此红外光谱识别与人工智能算法相结合的方式在气体红外光谱识别领域逐渐成为了研究热点。白鹏等[4]提出了基于支持向量机(SVM)二值分类识别的逐一气体种类识别法,该方法在对天然气气体种类识别实验中取得了良好的效果。刘美娟等[5]将小波多尺度分析与反向传播神经网络算法结合,实现了对甲基膦酸二甲酯(DMMP)光谱的快速识别。余段辉[6]采用径向基神经网络算法,对NH3、HCL、CO、NO、CH4这5种气体光谱进行了有效识别。2016年,Chen等[7]提出了极端梯度提升(XGBoost)算法,该算法由于具有快速、高效、准确等特点,在医疗、生物、环境检测、商业生产、**等领域有着广泛的应用,并取得了优异的效果。因此,将XGBoost算法应用于红外光谱识别领域有着重要的研究意义。本文将XGBoost算法应用于气体红外光谱种类识别中,从气体红外光谱数据预处理、特征提取、建模分析这三个方面开展工作,并挑选了实测的三氯甲烷、对二甲苯、四氯乙烯气体的红外光谱数据对XGBoost算法进行验证。实验结果表明,XGBoost算法具有良好的工作特性和模式识别能力,可完成气体种类识别任务,具有重要的工程应用价值。
2 基本原理
2.1 XGBoost算法
XGBoost算法是提升算法的一种,通过残差拟合生成多个弱学习器,最后将生成的弱分类器累加起来得到一个强学习器[8-12]。XGBoost在优化过程中将损失函数二阶泰勒展开,引入二阶导数信息,使得模型在训练过程中的收敛速度更快。此外,XGBoost还在损失函数中添加正则化项来抑制模型复杂度,防止过拟合现象的发生。XGBoost算法的具体推导过程如下。令D={(xi,yi)}是一个拥有n个样本、每一个样本拥有d个特征的数据集,其中xi表示第i个样本数据,yi表示第i个样本的标签。基模型选用分类与回归树(CART)。XGBoost的集成模型利用由K(树的数目)个基模型组成的一个加法运算式来预测最终结果:
式中:k为树的编号;fk(·)为第k棵树的表达式。
模型的预测精度是由模型的偏差和方差共同决定的。损失函数可以反映模型的偏差。为了控制模型的方差,使模型更简单,添加抑制模型复杂度的正则化项。正则化项与模型的损失函数构成XGBoost算法的目标函数:
式中:
式中:wj为叶子节点j的权重。定义
在(4)式中,叶子节点wj是一个不确定值。故将目标函数Obj(k)对wj求一阶导数,解出叶子节点j的最优值
将
2.2 XGBoost模型构建流程
XGBoost在构建CART时,使用贪心算法进行特征分裂,设树的最大深度为m,算法流程如
贪心算法每次从根节点开始对每一节点遍历所有特征,选出得分最高的点作为分裂节点,分裂到树的最大深度后停止分裂,并开始构建下一棵树的残差。最后将所有生成的树进行集合,得到XGBoost模型。XGBoost算法构建示意图如
3 实验测试与分析
3.1 数据处理
本实验数据集选取实际测量的三氯甲烷、对二甲苯、四氯乙烯这三种气体的红外光谱数据。光谱采集的波数范围是650~1350 cm-1,光谱分辨率为2.35 cm-1。共收集了8616条数据,其中三氯甲烷3025条、对二甲苯2855条、四氯乙烯2736条,将数据按照7∶3的比例随机划分训练集和测试集。
由于数据在采集过程中不可避免地受到仪器响应、背景变换、噪声等干扰,FTIR光谱仪采集到的数据含有基线和高频噪声成分,这些成分会在不同程度上影响模型的性能。为了消除这些影响,需要对采集的气体红外光谱数据进行预处理。第一步,选用迭代多项式拟合法,消除原始数据中的基线漂移现象[14];第二步,将去除基线的数据通过Savitzky-Golay滤波器,消除光谱数据中的高频噪声,使光谱曲线更加平滑[15];第三步,为使所有的气体光谱数据处于同一量级上,并便于模型分析,对每一条光谱数据进行归一化处理。三种气体红外光谱数据预处理前后对比结果如
在对原始数据进行去基线、滤波、归一化处理后,需要提取特征向量来训练XGBoost模型。通过查阅相关文献[16-18]并结合三种气体红外光谱数据,选取了几种能够很好地反映不同种气体吸收峰信息的特征。选取的特征和意义如
表 1. 用于气体光谱分类的特征
Table 1. Features for gas spectral data classification
|
3.2 XGBoost模型训练
在对原始光谱数据进行处理得到特征向量后,开始对XGBoost模型进行训练。模型训练步骤如下。
1) 将得到的特征向量和标签输入到模型中;
2) 根据当前已学习到的基学习器的预测值之和与样本真实值得到残差,初始预测值为0;
3) 初始化待分割的特征列表,对于潜在的分割点,得出分割前和分割后的目标函数变化情况;
4) 判断当前基学习器的深度是否达到最大分裂深度,若未达到最大深度,则寻找最优分割点,并基于最优分割点分配样本到左右叶子节点,然后回到步骤3),若达到最大分裂深度,则停止分裂,计算每个叶子节点权重,完成当前基学习器的建立;
5) 判断当前模型训练是否达到终止条件(基学习器数量到达设定的最大值等),若未达到,则回到步骤2),若达到,则将所有训练得到的基学习器集合起来,得到XGBoost模型,模型训练结束。
XGBoost模型训练流程如
在模型的训练过程中,为了确定模型参数,利用网格搜索结合十折交叉验证法对模型的超参数进行了调优,以确保得到最优的模型架构。
图 3. 光谱预处理前后对比。(a)(b)三氯甲烷;(c)(d)对二甲苯;(e)(f)四氯乙烯
Fig. 3. Comparison before and after spectral pretreatment. (a)(b) Trichloromethane; (c)(d) paraxylene; (e)(f) tetrachloroethylene
3.3 模型性能分析
在完成XGBoost模型训练后,得到三种气体光谱分类误差矩阵,如
表 2. 三种气体分类误差矩阵
Table 2. Classification error matrix for three kinds of gases
|
为了更好地评估XGBoost模型在气体红外光谱分类上的性能,引入随机森林(RF)、SVM、卷积神经网络(CNN)、前馈神经网络(FNN)这4种常用的分类算法作为对比。使用上述训练集和测试集对这几种模型进行训练和测试,几种模型的性能如
表 3. 5种模型的分类准确率
Table 3. Classification accuracy for five models
|
从
4 结论
通过实际测得的三种气体红外光谱数据,研究了基于XGBoost算法的气体红外光谱数据分类问题。首先对原始光谱数据进行预处理,得到了用于模型训练的特征向量;然后通过网格搜索和交叉验证等方法对模型进行优化;最后基于分类准确率指标,将XGBoost与随机森林、支持向量机、卷积神经网络、前馈神经网络这4种常用的分类模型进行对比。实验结果表明,XGBoost算法的分类正确率达到了96.75%,与其他模型性能相比有不同程度的提升。因此,XGBoost模型在红外光谱识别上性能表现优越,具有广阔的应用前景。
[1] Sheehe S L, Jackson S I. Identification of species from visible and near-infrared spectral emission of a nitromethane-air diffusion flame[J]. Journal of Molecular Spectroscopy, 2019, 364: 111185.
[2] 韩应哲, 张延炘, 常胜江, 等. 基于最佳小波变换和神经网络的气体非线性荧光光谱的识别[J]. 光电子·激光, 2005, 16(6): 718-721.
Han Y Z, Zhang Y X, Chang S J, et al. Recognition for the nonlinear fluorescence spectra based on optimal wavelet transform and artificial neural network[J]. Journal of Optoelectronics·Laser, 2005, 16(6): 718-721.
[3] 白鹏, 谢文俊, 刘君华. 层次式SVM子集含烃类混合气体光谱分析方法[J]. 光谱学与光谱分析, 2008, 28(2): 299-302.
Bai P, Xie W J, Liu J H. Method of infrared spectrum analysis of hydrocarbon mixed gas based on multilevel and SVM-subset[J]. Spectroscopy and Spectral Analysis, 2008, 28(2): 299-302.
[4] 白鹏, 王建华, 王宏柯, 等. 基于SVM回归模型的混合气体组分种类光谱识别方法[J]. 光子学报, 2008, 37(4): 754-757.
[5] 刘美娟, 冯巍巍, 史丰荣, 等. 污染气体红外光谱特征的快速提取与识别[J]. 光谱学与光谱分析, 2006, 26(10): 1854-1857.
Liu M J, Feng W W, Shi F R, et al. Fast algorithm for feature extraction and identification of infrared spectra of polluted gases[J]. Spectroscopy and Spectral Analysis, 2006, 26(10): 1854-1857.
[6] 余段辉. 基于红外光谱的气体识别与浓度检测算法研究[D]. 成都: 电子科技大学, 2018: 13- 58.
Yu DH. Research on gas recognition and concentration detection algorithm based on infrared spectrum[D]. Chengdu: University of Electronic Science and Technology of China, 2018: 13- 58.
[7] Chen TQ, GuestrinC. XGBoost: a scalable tree boosting system[C]∥Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, August 13-17, 2016, San Francisco, California. New York: ACM, 2016: 785- 794.
[8] Zopluoglu C. Detecting examinees with item preknowledge in large-scale testing using extreme gradient boosting (XGBoost)[J]. Educational and Psychological Measurement, 2019, 79(5): 931-961.
[9] Torlay L, Perrone-Bertolotti M, Thomas E, et al. Machine learning: XGBoost analysis of language networks to classify patients with epilepsy[J]. Brain Informatics, 2017, 4: 159-169.
[10] 李大中, 王超, 李颖宇. 基于XGBoost算法的风机叶片结冰状态评测[J]. 电力科学与工程, 2019, 35(9): 43-48.
Li D Z, Wang C, Li Y Y. Evaluation of fan blade icing based on XGBoost algorithm[J]. Electric Power Science and Engineering, 2019, 35(9): 43-48.
[11] 张枭, 罗阿理. 基于XGBOOST的恒星光谱分类特征数值化[J]. 光谱学与光谱分析, 2019, 39(10): 3292-3296.
[12] 张微薇, 刘盾, 贾修一. 基于XGBoost的三分类优惠券预测方法[J]. 南京航空航天大学学报, 2019, 51(5): 643-651.
Zhang W W, Liu D, Jia X Y. Three classified coupon prediction based on XGBoost algorithm[J]. Journal of Nanjing University of Aeronautics & Astronautics, 2019, 51(5): 643-651.
[13] Mo H, Sun H J, Liu J J, et al. Developing window behavior models for residential buildings using XGBoost algorithm[J]. Energy and Buildings, 2019, 205: 109564.
[14] , 等. 基于基线漂移模型的气体光谱自动基线校正[J]. 光谱学与光谱分析, 2018, 38(12): 300-305.
王昕, 王昕, 吕世龙, 吕世龙, 李岩, 李岩, 等. 基于基线漂移模型的气体光谱自动基线校正[J]. 光谱学与光谱分析, 2018, 38(12): 3946-3951.
Wang X, Wang X, Lu S L, Lü S L, Li Y, Li Y, et al. Automatic baseline correction of gas spectra based on baseline drift model[J]. Spectroscopy and Spectral Analysis, 2018, 38(12): 3946-3951.
, et al. Automatic baseline correction of gas spectra based on baseline drift model[J]. Spectroscopy and Spectral Analysis, 2018, 38(12): 300-305.
[15] Liu J, Koenig J L. A new baseline correction algorithm using objective criteria[J]. Applied Spectroscopy, 1987, 41(3): 447-449.
[16] 赵阅书, 薛晓明, 宋小娇, 等. 6种阔叶树材红外光谱特征的比较[J]. 林业工程学报, 2019, 33(5): 40-45.
Zhao Y S, Xue X M, Song X J, et al. Comparison and analysis of FT-IR spectra for six broad-leaved wood species[J]. Journal of Forestry Engineering, 2019, 33(5): 40-45.
[17] 杨三强, 颜立景, 刘娜, 等. 基于红外光谱图特征峰分析的沥青指标[J]. 江苏大学学报(自然科学版), 2019, 40(2): 244-248.
Yang S Q, Yan L J, Liu N, et al. Asphalt index based on characteristic spectral analysis of infrared spectrum[J]. Journal of Jiangsu University(Natural Science Edition), 2019, 40(2): 244-248.
[18] 庄琳, 宋小娇, 徐燕红. 水青树木材红外光谱特征研究[J]. 湖北农业科学, 2017, 56(7): 1334-1339, 1344.
Zhuang L, Song X J, Xu Y H. Study on the infrared spectral characteristic of tetracentron sinense wood[J]. Hubei Agricultural Sciences, 2017, 56(7): 1334-1339, 1344.
Article Outline
陶孟琪, 刘家祥, 吴越, 宁志强, 方勇华. XGBoost在气体红外光谱识别中的应用[J]. 光学学报, 2020, 40(7): 0730002. Mengqi Tao, Jiaxiang Liu, Yue Wu, Zhiqiang Ning, Yonghua Fang. Application of XGBoost in Gas Infrared Spectral Recognition[J]. Acta Optica Sinica, 2020, 40(7): 0730002.