[0029] 以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
[0030] 实施例1:
[0031] 本实施例是应用近红外光谱定量分析,对玉米样本中的水分含量值进行建模分析。图1 显示了本发明方法的流程图。具体的步骤如下:
[0032] 本实施例中采用化学计量学算法验证公开的一组数据,具体为一组玉米样品的数据,其可下载自http://software.eigenvector.com/Data/Corn/index.html,该组数据包含了80 个玉米样品的近红外光谱和水分浓度。光谱测量仪器为M5,样本的近红外光谱波长范围为 1100-2498nm,采样间隔为2nm,包括700个波长点,样品光谱图见图2中的A。本实施例使用常用的数据分组方法Kennard-Stone算法将80个玉米样品分为建模集、预测集,其中 53个样本用作建模集,27个样本用作预测集。建模集用于建立模型,预测集用于测试模型优劣。计算之前使用蒙特卡洛交叉验证确定PLS建模因子数为10。
[0033] 步骤1:初始化,建模集样品光谱数据X为53×700的矩阵,含有53个样品,700个光谱变量。建模集样品目标组分为玉米水分含量,使用y表示,为53×1的向量,设定窗口数N为100,迭代次数T为N和100之间的最小值,所以T=100,剔除窗口速率为r=N/T =100/100=
1,将建模集样品的光谱数据X的700个光谱变量分成100个窗口,每个窗口宽度为700/100=
7。具体的窗口划分方法为,计算1至700+1的100+1个等分点(可使用matlab 命令linspace或者R语言的seq命令获取),结果为1,8,15,…,701,第1个窗口为1~ 8-1,第二个窗口为8~15-1,……,第100个窗口为694~701-1,划分的窗口见图2中的A,从图看出,样品光谱变量被划分为连续等宽度的窗口;
[0034] 步骤2:升级i,i=i+1;
[0035] 步骤3:随机选取建模集样品的80%用于计算,即53×80%≈42个样品。使用选取样品保留窗口中的光谱变量(i=1时为所有光谱变量)和选取样品的玉米水分含量y建立PLS 模型,得到一组模型回归系数。具体的,PLS模型回归系数数目与保留窗口中的光谱变量数目相同,按照保留窗口中光谱变量划分窗口的位置将回归系数也分成相同窗口;样品光谱变量图和窗口划分位置见图2中A。图2中的B为i=1时,根据全部光谱变量计算的回归系数,其窗口划分位置与图2中的A相同;
[0036] 步骤4:统计每个窗口内回归系数绝对值的均值,图2中的C显示了i=1时,每个窗口内回归系数绝对值的均值的分布;
[0037] 步骤5:依次剔除回归系数绝对值均值最小对应窗口内的光谱变量,直到剩余的窗口数为 停止。
[0038] 步骤6:基于建模集样品,使用10折交叉验证,检验剩余的光谱变量,计算模型的RMSECVi;
[0039] 步骤7:如果i小于T(T=100),返回步骤2,重复步骤2-7,否则执行下一步;
[0040] 步骤8:基于建模集样品,使用RMSECVi最小值对应的光谱变量建立PLS模型,具体的图 3显示了RMSECV随保留窗口数变化图,结果显示保留2个窗口RMSECV最小,模型最优;
[0041] 步骤9:使用步骤8建立好的PLS模型用于未知样品分析。具体地是将目标组分未知的样品的光谱数据带入PLS模型,计算得到其目标组分的预测值。
[0042] 本发明方法使用预测集样品光谱变量,代入模型,得到预测集样品的预测值,然后计算预测集的预测均方根误差(root mean squared error of prediction,RMSEP),用于评价模型。RMSEP越小,表明样品的预测误差越小,模型的预测结果越好。表1列出了500次运算 CARS、WCARS,建模集的RMSECV、预测集的RMSEP及模型使用光谱变量数的平均值,括号中列出了标准偏差。从表中看出,WCARS方法的RMSECV和RMSEP都较原CARS方法小,说明其预测效果好;RMSECV和RMSEP更接近,说明其具有一定的减少过拟合的优势。WCARS保留光谱变量数为14,14/7=2,说明该方法保留了2个窗口的光谱变量,CARS平均使用3个光谱变量用于建模。括号中标准偏差显示了500次计算WCARS选择的光谱变量是相同的,结果没有波动,所以为0,而CARS结果变动幅度比较大,也说明了WCARS的优势。
[0043] 本发明推荐使用窗口数100,也可以根据具体情况优化窗口数目,图4为RMSECV与窗口数的关系图,图中误差棒显示了不同窗口数下统计的500次运算结果的均值和标准偏差大小。图中可以看出,RMSECV先随着窗口数的增加而快速降低,窗口数约为90后保持缓慢波动,在150以后有缓慢上升趋势,窗口数为90时RMSECV最低,且500次运算变动最小。表1也列出了窗口数为90时的结果,对比可知该参数优于100。
[0044] 表1 500次运算CARS、WCARS结果统计表
[0045]
[0046] *括号中值为500次计算结果的标准偏差。