三维荧光光谱结合稀疏主成分分析和支持向量机的油类识别方法研究

2021-11-11 05:23孔德明陈红杰陈晓玉王书涛
光谱学与光谱分析 2021年11期
关键词:贡献率特征提取光谱

孔德明,陈红杰,陈晓玉,董 瑞,王书涛

1.燕山大学电气工程学院,河北 秦皇岛 066004 2.燕山大学信息科学与工程学院,河北 秦皇岛 066004

引 言

随着海上石油运输业的迅速发展,海运船只不断增加,导致海上溢油事故频繁发生,海洋石油污染也日益严重,溢油的出现影响着海洋环境,并间接危害着人类的健康[1]。因此,研究一种更高效的油类识别算法,对海洋环境保护以及石油的污染防治具有重要的实用价值。

目前,溢油检测方法有色谱法、质谱法、光谱法等[2],其中荧光光谱法以其测量灵敏度高、方法简单、环保无污染等优点,成为石油污染物识别的主要方法[3]。三维荧光光谱描述的是物质的荧光强度随激发和发射波长变化的关系,其中包含了丰富的被测物信息,但是在解析光谱时,因物质的荧光性质相似而出现光谱重叠现象,会给后续的分类识别造成影响,所以对光谱数据的预处理以及特征参量的提取是尤为重要的[4]。

特征提取是三维荧光光谱数据分类识别的关键,其主要由参量化方法以及数据降维方法来实现。参量化方法[5]主要通过提取三维荧光光谱的平均值、原点矩、中心距等特征参数代表原始光谱数据,并将其作为分类识别的输入数据,该方法虽明确了光谱的几何特征,但是却忽略了光谱之间的内在联系,只是特征间的简单组合;数据降维方法主要是将数据投影到低维可视空间,以便看清数据的分布,其中最具代表性的是主成分分析(PCA)算法[6],李杰等[7]提出了基于PCA的时间分辨油类荧光分类算法。但是上述方法中,用PCA进行特征提取时每一个主成分只是其原始变量的线性组合,并且在这些变量中还存在大量的冗余信息[8],会降低分类识别的准确率。

因此在PCA的基础上提出了稀疏主成分分析(SPCA)算法来优化特征提取算法,得到更有效的特征信息。本文将三维荧光光谱技术结合SPCA特征提取方法与支持向量机(SVM)算法对油类进行识别,结果表明SPCA的稀疏特性使其在特征提取时更加突出主要成分,并且能够更好地去除荧光光谱间的冗余信息,实现降维的最优化,从而为分类提供更有效的光谱数据,得到更加准确的分类结果。

1 实验部分

1.1 仪器与材料

实验中石油的三维荧光光谱数据由FS920荧光光谱仪采集,其中激发波长的范围设置为260~500 nm,步长为10 nm,发射波长的范围设置为280~520 nm,步长为5 nm。

配制所需溶液的具体步骤如下:首先取适量海水,使其与十二烷基硫酸钠(SDS)混合配制成浓度为0.1 mol·L-1的SDS溶剂;然后用精密电子秤分别称取柴油(Diesel oil)、航空煤油(Jet fuel)、汽油(Gasoline)、润滑油(Lubricating oil)各0.1 g;其次,用SDS溶剂分别与四种油类配制成浓度为1 mg·mL-1纯油储备液并进行避光保存;最后,以0.1 mg·mL-1作为浓度间隔,量取四种油类储备液并将浓度稀释至0.1~2.0 mg·mL-1,每种油得到20个样本,共得到80个样本。

1.2 数据预处理

本实验得到80个49×25的二维数据矩阵,记X=xkij即X=x80×49×25,其中xkij表示第k个样本,发射波长为i,激发波长为j时所对应的荧光强度,利用Delaunay三角形内插值法消除荧光光谱中的散射,再将荧光光谱曲线进行平滑处理,得到如图1所示的三维荧光光谱图。

图1 去除散射后的荧光光谱图

将X经过数据重组得到二维数据矩阵X=x80×1 225,利用Kennard-Stone算法按3∶1的比例将80个样本分为60个训练样本和20个测试样本,即得到的训练样本数据与测试样本数据分别为X1=x60×1 225和X2=x20×1 225。对得到的训练集和测试集样本数据同时进行归一化处理,避免了因维度量纲的差距导致较低的数量级属性变为0的问题,同时保留了更多的原始数据信息,为后续的分类提供了更有效的数据信息。

2 检测原理

2.1 稀疏主成分分析

稀疏主成分分析(sparse principal component analysis,SPCA)是利用弹性网产生具有稀疏载荷的修正主成分,其稀疏主成分由PCA算法的线性组合问题转化为回归型优化问题,其通过对回归稀疏施加Lasso约束,得到稀疏载荷[9-10]。

SPCA算法求解过程:

(1)使A从V[: , 1:k]开始,即前k个普通主分量的载荷;

(2)给定一个固定的A=[α1, …,αk],求解以下弹性网问题:j=1, 2, …,k;

βj=argmin(αj-β)TXTX(αj-β)+λ‖β‖2+λ1, j‖β‖1

(3)给定一个固定的A=[α1, …,αk],计算XTXB=UDVT的奇异值,然后更新A=UVT;

(4)重复步骤(2)—(3),直至收敛;

SPCA在PCA的基础上,添加了惩罚函数,并且以略微牺牲贡献率为代价获得载荷稀疏化,从而明确了变量之间的关系,体现出了SPCA的优越性,并且SPCA的稀疏性可突出主要成分,同时可以极好地去除变量间的冗余信息,为分类提供更加有效的数据基础,从而使评价结果更加可靠且确切。

2.2 SVM支持向量机

支持向量机(support vector machine,SVM)是基于结构风险最小原理的监督学习算法,其适用于小样本、非线性及高维的数据模型,在收敛、最优解及泛化能力等方面有着一定的优势[11]。

SVM既可以解决线性问题又可以解决非线性问题[12]。对于线性问题,根据分类间隔最大化的原则,来定义最大超平面和支持向量机,将线性问题转化成凸约束条件下的凸规划问题进行解决。针对非线性问题,基本思想是通过变换输入变量的运算空间,将非线性内积映射到高维的特征空间,来使非线性问题转化成容易解决的线性问题,即将求解最优分类面的问题转化成求解约束优化问题,引入松弛变量ξ和惩罚因子c,转化成线性不可分的SVM问题,因其满足Slater条件,通过拉格朗日对偶将其转化为对偶问题进行求解,最后通过引入核函数将对偶问题转化约束优化问题,并求其最优解。

本文所采用的核函数是径向基(RBF)核函数,它对复杂模型数据有着较好的处理能力。同时又通过网格搜索法选取核参数g和惩罚参数c[13],即先选定惩罚参数c和RBF核参数g的变化范围,在此范围内寻找最佳的参数值,并对其进行K折交叉验证(K-fold cross validation),此方法可遍布网格内所有的参数,得到全局最优解,即交叉验证意义下最高的分类准确率。

3 结果与讨论

3.1 不同类型石油的三维荧光光谱

实验测得80个荧光光谱样本,可得到如表1所示的石油荧光特征参数,四种石油的荧光光谱特征参数之间既存在相似性又存在差异性,根据四种石油的激发峰值波长范围、发射峰值波长范围以及荧光强度可知,不同类型的石油光谱间出现了光谱重叠现象;由荧光峰个数可知,只有柴油光谱有两个峰。出现异同的原因可能是四种油所含荧光物质的种类以及各类荧光物质的比例不同[14]。

表1 四种类型石油的荧光特征参数

3.2 特征提取

直接通过四种石油的荧光光谱特征参数很难对其进行鉴别分析,因此本文分别利用PCA和SPCA算法对预处理后的数据进行特征提取,两种算法提取得到的贡献率如图2所示,由SPCA算法得到的前六个主成分的累计贡献率为99.09%,贡献率分别为78.42%,8.99%,8.54%,1.40%,0.97%和0.77%;由PCA算法得到的前六个主成分的累计贡献率为99.18%,贡献率分别为78.71%,9.04%,8.55%,1.39%,0.97%和0.52%。由于载荷稀疏是以损失方差贡献率为代价,故SPCA第一主成分的贡献率低于PCA,但两者的累计贡献率均超过了99%,能够表示样本的数据信息,为后续分类提供了强有力的数据特征信息。

图2 前六个成分的贡献率

3.3 模型的建立

3.3.1 PCA-SVM与SPCA-SVM模型

对预处理的数据分别利用PCA与SPCA算法进行提取特征后,前6个主成分的累计贡献率分别达到99.18%和99.09%。将得到的降维数据分别输入到SVM中进行分类,采用网格搜寻方法,得到最佳参数c与核参数g如表2所示,再利用最佳参数对模型进行训练,得到CV意义下的分类准确率,其中SVM对训练集分类的准确率为100%,从而为测试集的预测提供了很好的模型基础。如图3为两种算法得到的参数选择结果图。

表2 SVM模型的最佳参数及准确率

图3 SVM参数选择结果图

通过SVM进行分类预测后,得到的预测结果如图4所示,PCA-SVM算法得到的预测结果中有2个样本被错误分类。其中,柴油错分为润滑油,汽油错分为润滑油,分类准确率为90%。而经过SPCA-SVM算法得到的预测结果中仅有一个样本被错误分类,即汽油错分为润滑油,减少了柴油的错分率,使分类准确率从PCA-SVM算法的90%提高到95%。对比两种算法可知,SPCA-SVM算法提高了分类准确率,因为SPCA算法是将其稀疏特性与主成分结合,将主成分的系数即构成主成分时每个变量前面的系数变得稀疏,可以在特征提取时将其非必要成分的系数进行稀疏,从而更加突出主成分的作用,同时这样也可以减少数据间的冗余,从而使SVM在分类时更加准确,因此SPCA提取到的特征信息比PCA得到的更具有代表性。

图4 SVM预测得到的分类结果图

3.3.2 PCA-KNN与SPCA-KNN模型

将数据利用KNN算法进行分类,得到的预测结果如图5所示,对于PCA-KNN而言,20个样本中错分了三个样本,柴油错分为航空煤油,汽油错分为润滑油,润滑油错分为航空煤油,PCA-KNN算法得到的分类准确率为85%。而对于SPCA-KNN而言,有两个样本被错误分类,其中,汽油错分为润滑油,润滑油错分为航空煤油,由分类结果可知,SPCA-KNN算法分类准确率高于PCA-KNN,主要是因为SPCA特征提取方法优于PCA,同样体现出了SPCA在降维中的优势,可为分类提供更可靠的特征信息。

图5 KNN预测得到的分类结果图

表3为四种分类模型预测结果。对比可知,在同类型的分类算法中,利用SPCA进行特征提取得到的分类准确率高于PCA;在相同的特征提取算法中,SVM算法的分类结果优于KNN。结果表明:SPCA-SVM分类算法是更加高效的油类识别算法。

表3 不同算法得到的分类结果(准确率/%)

4 结 论

采集了四种类型石油的荧光光谱,首先利用SPCA特征提取方法进行光谱特征提取,然后利用SVM算法进行分类。研究结果表明,SPCA算法可以更好地去除油类光谱数据变量间的冗余信息,实现对数据的降维,为分类提供更加可靠且有效的数据,对比参量化法和PCA等降维方法,SPCA得到的提取信息更具代表性,再结合高效的SVM分类算法,从而使预测结果变的更加准确,因此本文得出了一种高效且准确检测石油的算法即SPCA-SVM算法,为后续石油污染的检测研究提供了一个新思路。

猜你喜欢
贡献率特征提取光谱
基于三维Saab变换的高光谱图像压缩方法
一种通用的装备体系贡献率评估框架
基于Daubechies(dbN)的飞行器音频特征提取
关于装备体系贡献率研究的几点思考
Bagging RCSP脑电特征提取算法
В первой половине 2016 года вклад потребления в рост китайской экономики достиг 73,4 процента
星载近红外高光谱CO2遥感进展
基于MED和循环域解调的多故障特征提取
苦味酸与牛血清蛋白相互作用的光谱研究
铽(Ⅲ)与PvdA作用的光谱研究