基于机器学习的微量农药光谱预测模型

2020-07-08 10:13陈菁菁
关键词:贝叶斯光谱精度

陈菁菁

(北京信息科技大学 计算机学院,北京 100192)

0 引言

光谱无损检测技术近年来应用越来越广泛,结合化学计量学分析方法,光谱无损检测技术已广泛应用在农业、工业、畜牧业、医学、航空航天等领域[1]。

近红外光谱技术(near-infrared spectroscopy)由于检测速度快、准确性高、在线性好等优点在各个领域应用广泛。近红外光谱技术结合化学计量学方法可对被测物进行定性和定量检测。近年来,机器学习算法越来越多地应用在了光谱分析中[2-4]。对于分类检测,常见的机器学习数据分析方法有k近邻分类算法(k-nearest neighbor,k-NN)、贝叶斯分类算法(Bayesian classifier)、支持向量机(support vector machine,SVM)分类算法、人工神经网络算法(artificial neural network,ANN)等。其中,k-NN是最简单的机器学习算法之一,它的基本思想是:如果一个样本在特征空间中的k个最相似(即特征空间中最近邻)的样本中的大多数属于某一个类别,则该样本也属于这个类别,距离度量、k值的选择及分类决策规则是k近邻法的3个基本要素。该方法操作简单,但判别时间较长,而且结果的准确性取决于样本是否平衡。贝叶斯分类算法以样本可能属于某类的概率作为分类依据,朴素贝叶斯分类算法是贝叶斯分类算法中最简单的一种。SVM分类方法的主要思想是建立一个最优决策超平面,使得该平面两侧距离该平面最近的两类样本之间的距离最大化,它的优点是模型的泛化能力较好,对于非线性问题能够提供较好的分类结果,但当样本量较大时存在判别时间较长等缺点。人工神经网络算法按拓扑结构可分为前向网络和反馈网络。近年来,随着深度学习概念的提出,神经网络发展迅速。极限学习机(extreme learning machine,ELM)则是在人工神经网络基础上提出的一种新的算法,它属于前馈神经网络算法,相对于其他神经网络算法,ELM算法执行过程中不必调整网络的输入权值以及隐元的偏置,学习速度快且泛化性能好。

本研究的目的是对不同浓度的微量农药的近红外光谱进行分类分析,比较4种机器学习分类算法的学习结果,并对预测精度、模型运行速度等进行分析。

1 材料和方法

1.1 试验仪器

本研究采用美国Thermo Nicolet公司生产的ANTARIS傅里叶变换近红外光谱仪,该仪器使用InGaAs检测器,光谱范围为3800~12 000 cm-1,最小分辨率为2 cm-1。

1.2 样品制备

采用DESIR(dry-extract system for infrared)法制备样品,以滤纸为载体,制备农药浓度范围在1.25~400 mg/kg之间的毒死蜱农药样品共计90个。毒死蜱农药为市面常见农药,对地下害虫防治效果较好,适用于防治水稻、小麦、棉花、果树、蔬菜、茶树上多种咀嚼式和刺吸式口器害虫。

1.3 光谱采集

光谱采集时,将DESIR农药样品放入样品池中进行光谱透射,在4000~10 000 cm-1的范围内获取样品近红外光谱信息,分辨率为8 cm-1,每张光谱采集32次后取平均值,每个样品在不同的位置采集4次光谱数据后取平均值,保存得到所有光谱数据。

1.4 数据分析方法

将制备的90个样品按浓度高低分为3组:300 mg/kg<样品浓度≤400 mg/kg的样品分为第1组;100 mg/kg<样品浓度≤300 mg/kg的样品分为第2组;100 mg/kg浓度以下的样品分为第3组。分别采用k近邻分类算法、朴素贝叶斯分类器、支持向量机算法、极限学习机分类算法对样品进行分类判别分析。数据分析时将样品按大约3∶1的比例分成训练集和测试集,其中训练集66个样品,测试集24个样品。

1.4.1k近邻分类算法

k-NN算法是通过测量不同特征值之间的距离进行分类,具体实现过程如下:1)计算测试数据与各个训练数据之间的距离;2)按照距离的递增关系进行排序;3)选取距离最小的k个点;4)确定前k个点所在类别的出现频率;5)返回前k个点中出现频率最高的类别作为测试数据的预测分类。本研究采用交叉验证法确定最优k值。对每一个k,使用测试集计算,记录k对应的错误次数,最终取错误数最小的k。对于距离的度量,有欧氏距离、曼哈顿距离、切比雪夫距离等,本研究采用欧氏距离进行度量,两个n维向量x和y的欧氏距离为

(1)

1.4.2 朴素贝叶斯分类器

贝叶斯定理是关于随机事件A和B的条件概率(或边缘概率)的一则定理。其中P(A|B)为在B发生的情况下A发生的可能性,而朴素贝叶斯分类器是分类算法集合中基于贝叶斯定理的一种算法。现有已知的训练集样本和待分类测试集样本x={a1,a2,…,am},其中a为每个样本的特征属性,已知所有样本有n个类别,即C={y1,y2,…,yn},则对于待分类项每个类别的概率为

(2)

如果

P(yk|x)=max{P(y1|x),P(y2|x),…,

P(yn|x)}

(3)

则x是属于yk类的。

1.4.3 支持向量机分类算法

支持向量机算法是非常有效的模式识别工具,众多研究显示[5-7],支持向量机算法相比较其他模式识别算法具有更加可靠的分类分析能力。本研究采用LIBSVM软件包进行数据分析。该软件包可以有效地解决多类问题、交叉验证选择参数、对不平衡样本加权、多类问题的概率估计等。在本研究中,使用RBF核函数进行分析。这个核函数将样本非线性地映射到一个更高维的空间,与线性核不同,它能够处理分类标注和属性的非线性关系。RBF核函数中有两个参数C和γ:误差惩罚因子C>O为某个指定的常数,起到对错分样本惩罚程度控制的作用,实现在错分样本的比例和算法复杂程度之间的“折衷”;γ为影响核宽度的参数。本研究使用5-折交叉验证法确定最优C和γ的值。将训练集的样品划分成大小相同的5个子集,然后将其中1个子集作为测试集,其他4个子集作为训练集训练分类器。如此,整个训练集中的每个实例都会被预测一次。因此,交叉验证的准确率等于能够被正确分类的数量百分比。该方法能够有效地避免过拟合问题。在使用5-折交叉验证法确定参数C和γ时,使用网格搜索的办法,找出交叉验证精度最高的一组(C,γ)为最优参数组合。

1.4.4 极限学习机

ELM最大的特点是在保证学习精度的前提下比传统的学习算法速度更快。对于单隐层神经网络,ELM可以随机初始化输入权重和偏置并得到相应的输出权重。

图1所示为ELM算法的演示图。算法的步骤可以分为:1)确定隐含层的神经元个数,随机设定输入层与隐含层的权重、隐含层的神经元的偏置b;2)选择一个无限可微的函数作为隐含层神经元的激活函数G(w,b,x),计算隐含层的输出H;3)计算输出层权值。

例如:现有N个样本(Xi,ti),其中Xi=[xi1,xi2,…,xin]T∈Rn,ti=[ti1,ti2,…,tim]T∈Rm。一个有L个隐层节点的单隐层神经网络可以表示为

(4)

式中:βi是输出权重;G(w,b,x)为激活函数;Wi为输入层权重;bi是隐层单元的偏置;j=1,2,…,N。式(4)可用矩阵表示为

Hβ=T

(5)

其中:

H=

在ELM算法中,一旦输入权重和隐层的偏置被随机确定,隐层的输出矩阵H就被唯一确定。训练单隐层神经网络可以转化为求解一个线性系统Hβ=T,并且输出权重可以被确定为

(6)

式中H+为H的Moore-Penrose 广义逆矩阵。

本研究所有数据处理和分析在Matlab R2013a和Excel2016中完成。

2 结果与分析

2.1 光谱曲线特性

2.2 判别分类结果

2.2.1 光谱数据预处理

所有光谱数据在分析之前都进行了预处理,首先采用多元散射矫正(multiple scatter correction,MSC)消除光谱曲线的基线漂移,使不同样本之间的光谱差异变得明显,之后进行归一化数据处理,将矩阵的每一行压缩到 [-1,1]。归一化的目的是使预处理的数据被限定在一定的范围内,从而消除奇异样本数据导致的不良影响。将样本按照浓度不同分为高浓度(300~400 mg/kg)、中浓度(100~300 mg/kg)、低浓度(小于100 mg/kg)三个组别进行试验。表1所示是不同判别分类方法模型预测结果。

表1 不同判别分类方法模型预测结果

2.2.2 不同方法分类结果

从表1中可看出,k-NN、SVM和ELM三种方法均取得了91.67%的分类精度,朴素贝叶斯分类法取得了83.33%的分类精度。其中,对于k-NN算法,高浓度样本和低浓度样本的分类准确度达到了100%,10个中浓度样本判别错了2个,分别错判至高、低浓度各1个样本;朴素贝叶斯算法对低浓度样本判断取得了100%的精度,高、中浓度样本各错判了2个,总体只取得了83.33%的分类精度;SVM算法得到的分类结果与k-NN算法一致,同样地对于高、低精度样本都取得了较好的分类精度,对中浓度样本的判别错了2个,分别错判至高、低浓度各1个样本;ELM算法总体的分类精度也达到91.67%,与k-NN、SVM算法结果不同的是,ELM算法分别对高、中浓度样本各错判了1个。

图3至图6分别显示了4种不同分类法k-NN、朴素贝叶斯、SVM和ELM的分类结果对比图,横坐标是测试集样品编号,纵坐标是测试集样本分类组别,图中分别用不同的标识符表示了实际值和预测值。可以看出,低浓度样本的分类精度较高,4种分类法都取得了100%的预测精度,对于中浓度样本,尤其是测试集第17号样本,4种预测方法均判断错误,可考虑是一个异常值。

另外,SVM和k-NN虽然也取得了较高的分类精度,但这两种算法在训练数据时都比较耗时,其中SVM在寻找最佳核函数(C,γ)参数时花费的时间较长,本研究采用5-折交叉验证法来确定参数C和γ,该方法可以有效地估计模型的实际预测能力,但当样本数目较大时,计算过程较为耗时。相比较而言,ELM算法的训练速度更快,对于大样本数据的分类解析效率更高[8]。

3 结束语

本研究采用不同机器学习方法对微量农药近红外光谱数据进行了分类检测,建立了基于k-NN、朴素贝叶斯分类器、SVM和ELM四种不同算法的分类预测模型,得出了以下结论:

1)四种算法均取得了较好的分类预测精度,其中k-NN、SVM和ELM均取得了91.67%的预测精度,朴素贝叶斯算法的预测精度为83.33%。

2)相比较SVM和k-NN算法,ELM算法训练速度最快,对于大样本数据具有较好的解析精度和分析速度。

3)机器学习算法为解决光谱数据处理问题提供了新的思路和解决办法。

本研究中用到的光谱数据容量较小,今后的研究中,为更好地验证模型的普适性,应增加样本数量,并在数据分析前进行异常值剔除以提高模型的稳定性和预测精度。

猜你喜欢
贝叶斯光谱精度
基于不同快速星历的GAMIT解算精度分析
基于三维Saab变换的高光谱图像压缩方法
改进贝叶斯统计挖掘名老中医对肺痿的证候分型经验
基于3D-CNN的高光谱遥感图像分类算法
热连轧机组粗轧机精度控制
基于贝叶斯定理的证据推理研究
基于贝叶斯解释回应被告人讲述的故事
租赁房地产的多主体贝叶斯博弈研究
租赁房地产的多主体贝叶斯博弈研究
以工匠精神凸显“中国精度”