赞
踩
化学计量学方法及计算机技术的快速发展促进了以近红外光谱分析为代表的无损检测技术的广泛应用,建立准确的分析预测模型是近红外分析的核心工作。其中,感兴趣信息的提取是数据分析和模型解释的基础,也直接决定了模型的泛化性和稳定性。但实际分析过程获取的光谱数据在包含有效信息的同时,还包含大量的冗余、干扰信息,作为数据“清洗”的关键一步,数据预处理对光谱分析过程至关重要,不同预处理方法及其组合对数据分析影响不同,如何根据预处理方法的适用性选择合适的方法及其组合是近红外分析的首要任务。
预处理主要用于调整每个测量变量的可变性及其关系,使其更好地符合数据分析的目标,但预处理方法及其组合依赖于数据的不同特征和数据分析的目标,特别是针对高维测量数据分析。在这期内容中,我们首先介绍一下近红外光谱中存在的主要干扰及其对应的分析方法,然后给出常用的分析策略,最后给出几点个人的建议(可能不是很准确)。
1. 噪声
几乎所有的分析信号都含有噪声,并且每种信号的分析背景均不相同,去噪过程需要结合信号特征选择合适的方法,常用的分析方法主要是平滑去噪,例如小波变换和Savitzky-Golay方法,其中小波变换通过将分析信号进行分解,再通过高频滤波实现去噪,SG方法通过窗口多项式拟合实现去噪,其中窗口大小和多项式阶数都是可选择的,平滑去噪方法可通过Matlab编程实现,以下资料较为详细的介绍了平滑去噪并给出了对应代码。
https://blog.csdn.net/weixin_42943114/article/details/107693068
2. 基线漂移
基线漂移是一个很常见但是很少被分析的问题,但是分析过程中存在的基线漂移问题使得检测到的光谱数据存在测量误差和特征变量弱化等问题,为减少误差对模型精度的影响,提高实际不同官能团的特征信息表征能力,我们在:
https://blog.csdn.net/qq_35667901/article/details/115354279;
进行了详细介绍。现有基线漂移分析方法主要有去趋势和基线校正,其中基线校正主要包括airPLS、arPL、SSBCP和求导等,我们在以下网页给出了详细的介绍和对应的代码:
https://blog.csdn.net/qq_35667901/article/details/103317482
https://blog.csdn.net/qq_35667901/article/details/105231305
https://blog.csdn.net/qq_35667901/article/details/105763809
3.光源散射
除了上述基线漂移的干扰外,我们现在所考虑的预处理大多都是针对散射校正的,散射主要是指采集数据中存在因样本大小以及环境等因素带来的谱线偏移。常用近红外光谱预处理方法包含SNV,MSC,SG,FT以及求导等操作,目前应用最广的是MSC和SNV。我们在以下链接中给出了具体公式和对应的分析结果:
https://mp.weixin.qq.com/s?__biz=Mzg4NTc1Mjg2Mg==&mid=2247483694&idx=1&sn=2c68610306bbbee495f772d60dff40a9&chksm=cfa5545ff8d2dd498647af555b1b6b6bfd9ef025a4a72015b3db813a56949d848749a0ed7d10#rd
4. 光谱波长与吸光度偏差
在实际分析中,可能会出现波长和吸光度偏差问题:特定波长位置及其吸光度出现异常或离群现象,主要原因包括测量误差和传输过程信号干扰,此类现象在测量初期一般都被当做异常样本或异常值被剔除了,但是对于小样本分析,通常需要对其进行对齐处理,包括参数时间对齐和相关优化对齐,主要思想是通过片段划分,然后进行对齐操作,因为近红外光谱分析中很少用这类分析策略,此处就不再对其进行探究。
5. 标准化、放缩和变换
标准化主要针对幅值漂移和量纲差异问题,其中幅值漂移是指由于基线和散射干扰导致的光谱纵向漂移,而量纲差异则是针对多指标响应变量的幅值差异,此类差异主要解决“大数吃小数”的现象,对实际分析过程比较重要,现有标准化有两种,一种是最大-最小值标准化,也称极值标准化,另外一种是z-score标准化,也称Z标准化,区别是前者的变量范围为[0, 1],而后者处理后数据符合标准正态分布,即均值为0,标准差为1,简单的代码为:
% 极值标准化
n=size(X,1);%获取行数minX = min(X); %获取极小值
maxX = max(X);%获取极大值
out = (X-repmat(minX,n,1))./repmat(maxX-minX,n,1);
% Z标准化
temp = [];
demesion = size(X);
meanX = mean(X);
stdX = std(X);
for i = 1:numel(X)
temp = [temp(X(i)-meanX)/stdX];
end
out=reshape(temp,demesion);
% 直接的方式是调用函数
XZ = zscore(X);
6. 预处理分析策略
上面讲了这么多的预处理方法,我们怎么去组合使用并确定其最优选择呢?通常有以下3种方法:
1)试错法:试错是我们现在使用最多的分析方法,通过基于处理后数据的预测结果来判断该方法及其组合的有效性,这种方法计算量比较大,而且对组合的顺序很敏感,后面我会分析一个个人的心得体会。
2)可视化:可视化主要是通过判断预处理方法是否有效去除预设的误差或干扰,比如噪声、基线、去趋势等,通过看噪声及基线是否被有效滤除来判断方法有效性,因为未进行建模分析,该类方法的适用性较低。
3)数据质量量化分析:此类分析主要通过计算预处理分析前后数据集相关量化指标的变化来判断有效性,比如预处理前后不同类样本的PC第一主成分解释率,样本间的相关性等指标,跟可视化分析类似,由于未建立对应的分析模型,很难判断方法的适用性,此外,需要注意的是PCA和样本相似性等仅依赖于光谱数据的统计指标并不能代表所用方法的有效性或者所选特征的代表性,这个问题我们有机会再单独讨论。
最后,我就预处理的基本过程及相关收获跟大家进行分享,首先是我们的基本分析流程:
数据分析前的关键就是预处理,但是预处理及其组合并不是随意的,以下为个人的几点体会:
1)一般单一的预处理方法效果有限,通常会结合不同的方法;
2)先去噪再进行其他操作,不去噪直接求导可能得到一团乱谱线;
3)尽量不要用SNV或MSC去做基线校正,很多文献中写SNV和MSC能够实现基线校正,但是仔细分析发现上述方法并没有去掉背景基线,只是把不同样本的基线设定为一样的;
4)求导后的两端谱线尽量不用于数据建模,这个主要是因为信号采集过程中两端噪声较大,在去噪能力有限的条件下求导后谱线吸光度差异过大,容易引起干扰;
5)高维数据先去噪再间隔采样,且对窗口大小不敏感;
6)预处理方法跟建模方法有关联性,对于分类和回归问题不难相同看待,分类求差异,回归求分布。
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。