杨友 丁跃武 包彩银 李四海
甘肃中医药大学 信息工程学院 甘肃 兰州 730000
光谱数据采集过程中由于光谱仪器本身特点、环境噪声、样本颗粒大小等原因,获得的光谱数据必然存在一定程度的基线漂移、散射、噪声等问题。数据预处理是通过一些数学方法抵消部分无效信息,凸显构建模型所需要的信息。一般选择数据预处理方法需要结合最终构建的模型效果,但当了解了每种数据预处理方法的优势时,并结合数据特征,会更有方向性地对预处理方法进行组合来尝试,以选择构建模型效果好的预处理方法。常用的数据预处理方法有:多元散射校正、标准正态变量变换(SNV)、导数法、小波变换算法(CWT)、平滑处理、中心化、标准化。在Wheat kernels数据集上,使用导数法和SNV对数据进行预处理,获得了更好的实验效果。
标准正态变量变换(standard normal variate transformation,SNV)可以削弱漫反射现象对光谱产生的影响,漫反射[1-3]一般由于固体颗粒大小不同、表面散射以及光程变化产生,SNV的公式与标准化公式相同,差异是标准化算法对一组光谱进行处理(基于光谱数据矩阵的列),而SNV算法是对一条光谱进行处理(基于光谱数据矩阵的行),SNV不需要考虑光谱数据集特征,操作简单方便。SNV的光谱预处理公式如下:
导数法[4]是光谱数据基线校正常用方法,一阶导数法可以削弱常数基线的影响,二阶导数法可以削弱一次函数基线的影响,三阶导数法可以削弱二次函数基线的影响。光谱数据求导法对复杂的基线漂移即使不能完全消除,也必然在一定程度上削弱其影响。光谱导数法的另一个优势是可以提高光谱分辨率。1个峰的一阶导数有2个峰,二阶导数有3个峰,使得重叠峰分开程度变大,可以有效降低光谱的基线干扰,对建模有利。但光谱导数法也会放大噪声,降低光谱信噪比。一般导数阶数越高,噪声放大程度越大,因此近红外光谱导数法一般只使用一阶或二阶,很少使用三阶及以上,有时需要提前对数据进行平滑处理。
光谱曲线一般很难找到与之完全匹配的函数式,无法直接用解析式计算光谱曲线的导数。有一些无须输入整个光谱数据曲线解析式的求导算法,如差分法、窗口移动多项式拟合法(Savitzky-Golay求导法)等。近红外光谱导数法预处理中Savitzky-Golay求导法被广泛使用,简称S-G求导法。S-G求导法首先用窗口移动的方法从整个光谱中获取多个局部小段,然后对每个小段用多项式函数进行拟合,对拟合所得的多项式函数求导,获得局部中心波长点的导数值,移动窗口的策略可收集所有局部小段中心波长导数值,由此获得整个光谱的导数曲线(光谱两端(w-1)/2个波长点的导数值用w长的分段拟合函数中心点导数无法计算)。S-G求导时要对求导窗口大小做合适的选择,窗口太小会扩大噪声,窗口太大则平滑过渡,导致精细信息丢失。
Wheat kernels 数据集[5]共523个样本,其中405个用作训练样本,108个用作测试样本。样本波长范围为850~1048nm,每个样本100个波数点,预测值为小麦样本蛋白质含量,数据集下载地址为:http://www.models.life.ku.dk/。软件平台为matlab、python 3.7及其机器学习库scikit-learn框架。
首先对光谱数据进行预处理,使用S-G求导法对近红外光谱数据进行基线校正,求光谱数据二阶导数,窗口大小设定为17。然后对数据进行标准正态变量变换处理,标准正态变量变换是对光谱矩阵行的一种处理,使光谱曲线的均值为0,方差为1。
多元线性回归算法,偏最小二乘回归算法,岭回归算法和支持向量回归算法分别使用预处理前和预处理后的小麦近红外光谱数据构建模型,预测小麦中蛋白质含量。
分析比较使用预处理前和预处理后数据构建模型的效果,使用均方误差损失和决定系数作为评价指标。
图1为小麦近红外光谱数据曲线,纵坐标为样本中小麦蛋白质含量。图2为小麦近红外光谱数据预处理后的曲线图像,纵坐标为光谱曲线数据进行预处理后的相对数值。
图1 小麦近红外光谱数据曲线
图2 小麦近红外光谱数据预处理后的曲线
图3为原始数据拟合效果,图4为预处理后数据拟合效果。对比图3与图4,显而易见,数据预处理后的模型拟合效果明显优于原始数据拟合效果。
图3 原始数据拟合效果
图4 预处理后数据拟合效果
从数据来看,效果更加明显。多元线性回归方法在预处理前的数据集上均方误差损失和决定系数分别为0.4437和0.8536,在预处理后的数据集上均方误差损失和决定系数分别为0.2245和0.9259;偏最小二乘回归方法在预处理前的数据集上均方误差损失和决定系数分别为0.4437和0.8536,在预处理后的数据集上均方误差损失和决定系数分别为0.2246和0.9259;岭回归方法在预处理前的数据集上均方误差损失和决定系数分别为1.4599和0.5183,在预处理后的数据集上均方误差损失和决定系数分别为0.1765和0.9418;支持向量回归方法在预处理前的数据集上均方误差损失和决定系数分别为1.7231和0.4314,在预处理后的数据集上均方误差损失和决定系数分别为0.1445和0.9523。四种方法使用预处理后的数据构建的模型明显优于使用原始数据构建的模型,四种方法使用原始数据构建的最优模型的均方误差损失和决定系数分别为0.4437和0.8535,使用预处理后的数据构建的最差模型的均方误差损失和决定系数分别为0.2256和0.9258,因此,可以发现数据预处理对构建模型的效果影响巨大。
基线漂移是Wheat kernels 光谱数据集存在的问题,由于数据为网络公开数据,无法获得光谱仪器的“理想光谱”数据,因此只能使用数学方法削弱基线漂移对实验的影响。使用S-G求导法对近红外光谱数据进行基线校正,求光谱数据二阶导数,窗口大小设定为17。标准正态变量变换可以削弱由于样本固体颗粒大小不同、表面散射以及光程变化产生的漫反射现象对光谱数据的影响。标准正态变量变换是对光谱矩阵行的一种处理,使光谱曲线的均值为0,方差为1。
预处理后的数据曲线出现了四个峰,如图2所示,提高了光谱分辨率,有效降低光谱的基线干扰,对建模有利,这是导数法预处理的效果。其次,预处理后数据曲线在0值上下波动,这是标准正态变量变换的效果,标准正态变量变换使光谱曲线的均值为0,方差为1,更有利于构建模型。
数据预处理方法较多,并且在不断发展。在数据预处理过程中选取数据预处理方法不但要结合原始数据特征,更要了解各种预处理方法的特点。光谱数据可能存在基线漂移、散射、噪声以及数据量纲等问题,一般都需要对光谱数据进行预处理,最终选择使用什么预处理方法取决于构建模型的效果,数据预处理方法选择是构建模型的重要一环。在Wheat kernels 数据集上,根据数据特征,使用S-G导数法和标准正态变量变换方法,使预处理后的数据构建模型的准确率明显高于使用原始数据构建模型。基线漂移和散射在光谱数据中很常见,因此基线校正和散射校正会在光谱数据预处理时进行考虑。光谱数据预处理可以凸显对构建模型更有利的数据特征,有利于构建更为高效,准确的模型。