基于近红外光谱的非线性建模方法及系统与流程

文档序号:13612955阅读:279来源:国知局
基于近红外光谱的非线性建模方法及系统与流程
本发明涉及非线性建模领域,特别是涉及基于近红外光谱的非线性建模方法及系统。
背景技术
:近红外光谱主要是分子内倍频和合频的吸收,光谱强度较弱,谱带较宽,重叠严重,近红外光谱的分析常常要结合化学计量学方法。常用的化学计量学方法有多元线性回归、主成分回归、偏最小二乘法等回归方法,这些回归分析都是基于光谱响应与相对应的化学值之间的线性关系来建立的,并不具备非线性校正的能力。然而,光谱响应与化学值之间并不是存在着严格的线性关系,特别是对于成分复杂的样本。在回归分析中,校正集样本的选择影响整个模型的预测精度和适用性,所以建模时要求建模集样本的光谱特征和化学值范围覆盖整个验证和的光谱特征和性质范围,这就往往造成建模集样本量非常大。但是,大量的样本不仅带来大量不相关因素之间的干扰,由于不同的样品间也会存在较大的差异,特别是对于非线性的光谱响应,严重影响模型的适用性和预测的准确度。可见,一种简单、方便、校正集样本量少,又能覆盖验证集所有光谱特征和化学性质范围的非线性建模方法非常有必要。技术实现要素:鉴于以上所述现有技术的缺点,本发明的目的在于提供基于近红外光谱的非线性建模方法及系统,用于解决现有技术中存在的以上问题。为实现上述目的及其他相关目的,本发明提供基于近红外光谱的非线性建模方法,包括:准备多个实验样本,包括:采集各所述实验样本的光谱图,并转换成近红外光谱数据;从各所述近红外光谱数据随机挑出一部分作为校正集,挑出一部分作为验证集;将所述校正集和所述验证集通过主成分分析得到光谱特征空间;在所述光谱特征空间中,通过马氏距离法选取所述校正集里与所述验证集的各个样本最近似的样本作为校正子集;从所述校正子集中提取主成分数,作为bp神经网络的输入层建立回归模型。于本发明一实施例中,所述方法还包括以下步骤中的一种或多种:步骤a、用所述回归模型验证所述验证集中的样本;步骤b、用全局建模方法验证所述验证集中的样本,并将验证结果与所述步骤a得到的验证结果比对。于本发明一实施例中,所述马氏距离法的计算公式为:其中,mdi为验证集中第i个样本到校正集的马氏距离,si为验证集中第i个样品的主成分得分矩阵,sj为校正集中第j个样本的主成分得分矩阵,v为主成分得分矩阵的协方差。于本发明一实施例中,所述从所述校正子集中提取主成分数,作为bp神经网络的输入层建立回归模型,包括:运用偏最小二乘法对所述校正子集通过交叉有效性分析确定主成分数,将所述主成分数作为bp神经网络的输入层建立非线性模型。于本发明一实施例中,在所述采集了各实验样本的光谱图之后,还包括:将各所述光谱图独立保存为各.dx格式的文件。为实现上述目的及其他相关目的,本发明提供基于近红外光谱的非线性建模系统,包括:第一模块至第五模块。第一模块用于采集各所述实验样本的光谱图,并转换成近红外光谱数据;第二模块用于从各所述近红外光谱数据随机挑出一部分作为校正集,挑出一部分作为验证集;第三模块用于将所述校正集和所述验证集通过主成分分析得到光谱特征空间;第四模块用于在所述光谱特征空间中,通过马氏距离法选取所述校正集里与所述验证集的各个样本最近似的样本作为校正子集;第五模块用于从所述校正子集中提取主成分数,作为bp神经网络的输入层建立回归模型。于本发明一实施例中,所述系统还包括:第六模块,或者,第六模块和第七模块的组合。第六模块用于根据所述回归模型验证所述验证集中的样本;第七模块用于根据全局建模方法验证所述验证集中的样本,并将验证结果与所述回归模型得到的验证结果比对。于本发明一实施例中,所述马氏距离法的计算公式为:其中,mdi为验证集中第i个样本到校正集的马氏距离,si为验证集中第i个样品的主成分得分矩阵,sj为校正集中第j个样本的主成分得分矩阵,v为主成分得分矩阵的协方差。于本发明一实施例中,所述从所述校正子集中提取主成分数,作为bp神经网络的输入层建立回归模型,包括:运用偏最小二乘法对所述校正子集通过交叉有效性分析确定主成分数,将所述主成分数作为bp神经网络的输入层建立非线性模型。于本发明一实施例中,所述第一模块还用于:在所述采集了各实验样本的光谱图之后,将各所述光谱图独立保存为各.dx格式的文件。如上所述,本发明的基于近红外光谱的非线性建模方法及系统,提出了关于主成分分析、马氏距离法、最小二乘法、bp神经网络法的组合模型。通过主成分分析法和马氏距离法的结合,选取与验证集最相似的校正集样本作为校正子集,运用偏最小二乘法对校正子集通过交叉有效性分析确定主成分数,将主成分数作为bp神经网络输入层建立非线性模型。采用本方法不仅能解决各因素之间多重相关的问题,还避免了大量的噪声和一些无用的信息,降低了变量维数,在bp神经网络的非线性映射能力和适应学习能力的基础上,提高了模型的预测稳定性和精度。附图说明图1显示为本发明一实施例的基于近红外光谱的非线性建模方法流程图。图2显示为本发明一实施例的全部样本光谱图。图3显示为本发明一实施例的原来校正集和验证集在主成分中的分布图。图4显示为本发明一实施例的选取后的校正集和验证集在主成分中的分布图。图5显示为本发明一实施例的非线性建模偏最小二乘的主因子数分布图。图6显示为本发明一实施例的全局非线性建模偏最小二乘的主因子数分布图。图7显示为本发明一实施例的非线性建模测试尼古丁值含量预测结果对比图。图8显示为本发明一实施例的全局建模测试尼古丁值含量预测结果对比图。图9显示为本发明一实施例的基于近红外光谱的非线性建模系统模块图。具体实施方式以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。请参阅图1,本发明提供基于近红外光谱的非线性建模方法,包括如下步骤:步骤s101:制备实验样本,例如,取云南红河复烤厂经过打叶复烤之后的烟叶,烟叶经过德国蔡司的在线近红外光谱仪扫描,光谱仪每5秒扫描一次,同时抓取一把经过扫描后的烟叶,大约30g,总共抓取10次形成一个混合样,光谱仪相对应的扫描10次,光谱仪自动计算扫描10次的平均光谱,这个平均光谱就是相对应的混合样的光谱,共取509个样品,并贴上对应的1/2/3….标签,将每个样品烘干磨粉后用流动分析仪器测得它们的基础数据。可选的,还可将各所述光谱图分别独立保存为.dx格式的文件,以供导入matlab进行数据处理。步骤s102:从各近红外光谱数据随机挑出一部分作为校正集,挑出一部分作为验证集。例如,用k-s方法从509个样本近红外光谱数据中挑选409个作为模型的校正集,挑选100个作为验证集。步骤s103:将校正集和验证集进行主成分投影以选取主成分作为光谱特征空间,优选的,选取前两个主成分作为光谱特征空间。所述主成分的计算公式为:其中,n为样本个数,p为波长点数,xnp为第n个样本在波长点数为p处的光谱数据值,再建立变量的相关系数矩阵rij=(rij)p×p,其中,求出rij的特征根:t1≥t2≥…≥tp>0,及相对应的特征向量:推导出主成分fi=a1ix1+a2ix2+…+apixp(i=1,…,p),进一步计算各个主成分的累计贡献率累计贡献率达到预设值(如:85%~95%)的特征值t1,t2,…,tm所对应的第1、第2、…、第m(m≤p)个主成分,说明前m个主成分基本包含了全部指标的具体信息,取前m个特征值,并计算出相对应的特征向量,组成光谱特征空间。步骤s104:在该光谱特征空间中,利用马氏距离法选取所述校正集里与所述验证集的各样本最相似的样本作为校正子集,优选的,选取所述校正集里与所述验证集的各样本最相似的两个样本作为校正子集。所述马氏距离法的计算公式为:其中,mdi为验证集中第i个样本到校正集的马氏距离,si为验证集中第i个样品的主成分得分矩阵,sj为校正集中第j个样本的主成分得分矩阵,v为主成分得分矩阵的协方差。需要说明的是,马氏距离的阈值设定步骤包括:首先,在所述光谱特征空间中计算所述验证集中每一条光谱样本到所述校正集中每一条光谱样本的马氏距离;其次,将这些马氏距离按降序排列,选取前面两个最短距离的光谱样本作为验证集光谱的校正子集;最后,计算所述验证集中每一条光谱的校正子集,从而建立新的校正子集。新的校正子集选择的都是与验证集中每个样本距离最相近的样本,不仅不会造成带入大量不相关且差异较大的样本,而且又能覆盖验证集中样本的光谱特征以及基础数据范围,大大的减少了建模时校正集的样本数目。步骤s105:从上述新的校正子集中提取主成分数,作为bp神经网络的输入层建立回归模型,优选的,将所述校正子集通过偏最小二乘法降维,通过交叉相互验证来确定主成分数据作为bp神经网络的输入层建立关联模型。当运用多元线性回归时,自变量之间可能存在严重的多重相关性,导致多元线性回归会失效,从而破坏参数的估计,扩大近红外模型的误差,使得模型散失稳定性,有时还会出现与现实生活中的常识相违背的结果。然而,偏最小二乘法在近红外中却能很好地解决这一问题,其在自变量大于样本数及自变量之间存在多重共线性时能够很好地发挥作用,有利于辨别近红外光谱中的噪声信息与信号信息。偏最小二乘法的中心思想是降维,分别从光谱数据与化学成分数据中依次提取成分r、u,令:式中,x为校正样品组成的光谱数据矩阵,为由卡尔蔡司近红外装置检测获得;y为校正集样品对应的基础数据组成的浓度矩阵,为由流动分析仪测量获得,r和u分别为x和y的得分矩阵,p和q分别为x和y的载荷矩阵,ex和ey分别为x和y的偏最小二乘回归法(简称为pls)的拟合残差矩阵。其中:rk(n×1)为x的第k个主因子的得分矩阵,pk(1×m)为x矩阵的第k个主因子的载荷矩阵,uk(n×1)为y的第k个主因子的得分矩阵;qk(1×m)为y矩阵的第k个主因子的载荷矩阵,n为得分矩阵的行数,m为载荷矩阵的列数,f为主因子数。接着,根据偏最小二乘法的原理,将r和u做线性回归:u=rb,b=(rtr)-1rty,在预测时,首先根据p求出待测样品得分矩阵的得分r预测,然后由下式得到此样品对应的浓度矩阵的预测值y预测=uqt=r预测bq。需要说明的是,在构建模型过程中,最初是忽略残差矩阵ex和ey,求出中间的参数后,再返回求残差矩阵。具体过程如下,开始取主因子数f=1时有:对x=rpt,左边乘rt,然后右乘p得:对y=uqt,左边乘ut然后两边同除以qt得:取浓度矩阵y作为u的起始迭代值,以u代替r,根据方程:x=uwt计算w,其解为:w为x的权重向量;对权重归一化后求x的得分矩阵r,方程为:x=rwt,其解为:以r代替u计算y的载荷矩阵q,其方程为:y=rqt,其解为:对载荷矩阵q归一化后求y的得分矩阵u,方程为:y=uqt,其解为:再以此u代替r返回最开始计算wt,由wt计算r1,如此反复迭代,若r已收敛,即若||r-r1||<10-6||r||,停止迭代;否则,返回继续求x的权重向量w直至获得的x的得分矩阵收敛;根据收敛后的r求x的载荷矩阵p,其方程为:x=rpt,其解为:对载荷矩阵p归一化后求x的得分矩阵r=r||p||;标准化权重向量w=w||p||;计算r与u之间的内在关系再计算残差矩阵ex=x-rpt、ey=y-uqt=y-brqt;最后,以ex代替x,ey代替y,返回最开始的步骤即求x的权重向量w。以此类推,求出x、y的主因子w、r、p、u、q、b,通过交互检验法(优选值)确定最佳主因子数f时停止迭代。需要说明的是,bp神经网络是误差反向传输人工神经网络,可以实现输入与输出之间的任意非线性映射,具有很强的非线性映射逼近能力和预测能力。将偏最小二乘法选取的主成分数的数据导入bp神经网络的输入层,经过标准化处理,给以权重输入到隐含层,隐含层经过权重、阈值和激励函数运算后,传到输出层,输出层给出样本的预测值,与样本的期望值进行比较,如果存在误差,则从输出层开始反向传回该误差,不断地进行权值以及阈值的调整,使得预测的结果与期望的输出趋向一致。举个例子,bp神将网络算法可以通过以下步骤实现:1)将选取的样本的主成分数据输入到输入层。2)随机数给定(0,1)范围内的初始权重,由隐含层的输出输出层的输出误差(n为样本数)计算正向信息的传输,其中:m为输入层的节点数,j=1,2,…,h,h为隐含层的节点数,wij为输入层节点i与隐含层节点j之间的连接权重;p为输出层的节点数,vjk为隐含层节点j与输出层节点k之间的连接权重;bj为隐含层节点j处的阈值,bk为输出层节点k处的阈值,能够使后面的传递函数左右移动;oij为隐含层节点j处的输出值;yij为其对应的期望输出值。3)输出层的误差参数uk=(yk-ok)f'(netk),其中:若传递函数采用对数sigmoid函数,f'(netk)=f(netk)[1-f(netk)],则uk=(yk-ok)ok(1-ok),k=1,2,…,p,p为输出层的节点数,yk为输出层的输出,ok为对应的期望输出值。4)隐含层的误差参数uj=(∑kukvkj)f'(netj),其中:若传递函数采用对数sigmoid函数,f'(netj)=f(netj)[1-f(netj)],则uj=(∑kukvkj)gj(1-gj),j=1,2,…,h,h为隐含层的节点数,k=1,2,…,p,p为输出层的节点数,vkj为输出层节点k与隐含层节点j处的连接权重。5)计算输出层和隐含层的误差参数u:由隐含层节点j与输出层节点k之间的连接权重vjk(l+1)=vjk(l)+tukgj和输入层节点i与隐含层节点j之间的连接权重wij(l+1)=wij(l)+tujxi不断地进行权重的调整,其中:t为学习速率,即步长,决定训练(迭代)的速度;l+1为训练中的迭代次数。6)重复上述步骤计算下一个训练样本。对于所用的训练样本,当误差达到预先给定值则停止迭代,对训练集中所有样本进行一次权重的训练被称为一次迭代,一般要经过上百次(如100—5000次)的迭代才能使误差达到最小,而且每一次迭代计算最好能随机选取训练样本。为了加快迭代过程且防止迭代过程的振荡,可采用引入动量因子的学习算法,在权重修正值中加上一项“动量”项,即:△w(l+1)=tuo+a△w(l),其中,uo表示初始状态输出层和隐含层的误差参数,a△w(l)为动量项,动量因子a初始值通常设定为0.9。以下将结合具体实验及实验结果说明本方法的优越性:1)采集样品的在线近红外光谱以及实验室化学值,烟叶经过打叶复烤之后,经过在线近红外光谱仪扫描,每5秒扫描一次,一共扫描10次求其平均光谱,同时按照均匀取样的方式,每5秒抓取一次,一共抓10次形成一个混合的样本,平均光谱就是这个混合样的光谱,并对样本进行标号,一共509个片烟样本。如图2所示。烟叶样本经过烘干、磨粉等步骤,用流动分析仪测得其相对应的基础数据,由于本例中使用matlab进行数据仿真,所以将各所述光谱图分别独立保存为.dx格式的文件。当然,保存为何种类型的文件可以根据实际仿真的工具进行选择。2)用k-s方法从509个样本近红外光谱数据中挑选409个作为模型的校正集,100个为验证集。通过下面matlab代码程序实现,得到图3:clearall;closeall;clc(清空所有的变量)。pname=['e:\2016年work\3月份\专利\红河二线光谱'];(读取光谱保存的文件夹,读取的数据是一个结构体)a=dir(fullfile(pname,'*.dx'));(将文件夹中.dx类型文件列表,读取的是一个结构数组)a=struct2cell(a);(将结构数组转换成细胞数组)b=a(1,:);(读取所有光谱文件名)x=[];(设置一个空矩阵)fori=1:length(b)(读取所有的光谱个数)d=strcat(pname,'\',b(i));(读取每一个光谱信息)[w,h]=textread(char(d),'%f%f',256,'headerlines',18);(读取每个光谱的波长和吸光度)x=[x,h];(将所有的光谱吸光度组成光谱矩阵)end(结束循环)x=x';(将光谱矩阵的列转换成行)y=xlsread('e:\2016年work\3月份\专利\红河二线值.xlsx','b1:b509');(读取相对应的化学值)ind1=randperm(609,429);(随机选取一个509行429列的矩阵)xcal=x(ind1,:);(在x光谱阵中选取429个光谱组成一个光谱矩阵,也就是校正集)ycal=y(ind1);(在y化学值中选取与xcal校正集相对应的化学值)x(ind1,:)=[];(将x光谱阵中429个光谱清空,即组成一个剔除429个光谱的光谱矩阵)y(ind1,:)=[];(在y化学值中选取与x剔除集中相对应的化学值)xtest=t(ind1,:);(在t光谱阵选取100个光谱组成一个光谱矩阵,也就是验证集)ytest=y1(ind1,:);(在y1化学浓度数据中选取100个与验证集相对应的浓度数据)xx=[xcal;xtest];(将校正集和验证集合并成一个大的矩阵xx)[coeff,score,latent,tsquare]=princomp(xx);(对xx进行主成分投影)p1=score(:,1);p2=score(:,2);(提取xx的前两个主成分数)figureplot(p1(1:429),p2(1:429),'ko',p1(430:end),p2(430:end),'k*')(在前两个主成分空间中,校正集和验证集的二维空间分布,分别用黑色的圈圈、黑色的*标识)legend('校正集','验证集')(图中的标题)xlabel('pc1')(x轴的标题,pc1为第一主成分数)ylabel('pc2')(y轴的标题,pc2为第二主成分数)title('原来校正集和验证集在主成分中的分布图')(标题)3)将校正集和验证集进行主成分投影,选取前两个主成分为光谱特征空间,在光谱特征空间,利用马氏距离选取校正集与每个验证集样品最相似的两个校正样本作为校正子集。通过下面matlab代码程序实现,得到图4:xcall=[];ycall=[];(设置空矩阵)fori=1:size(xtest,1)(循环,从1到429)xcal=[xcal;xtest(i,:)];[coeff,score,latent,tsquare]=princomp(xcal);(验证集进行主成分投影)t=score(:,1:10);(选取10个主成分)ms=[];(设置一个空矩阵)fori=1:size(xcal,1)ma=sqrt((t(j,:)-t(size(xcal,1)+1))*inv(cov(t))*(t(j,:)-t(size(xcal,1)+1))');(计算每个验证样本到校正集的距离)ms=[ms,ma];(将所有验证集到校正集样本的马氏矩阵组成一个行矩阵)end[ma,index]=sort(ms);(将马氏距离从大到小排列)ind=index(1:2);(选取前面距离最近的两个数据编号)x1=xcal(ind,:);(选取校正集中与每个验证集最相似的两个组成校正子集)y1=ycal(ind,:);(选取相对应的浓度数据)xcall=[xcall;x1];(将所有的校正子集组成一个矩阵)ycall=[ycall;y1];(将相对应的浓度数据组成一个列矩阵)xcal(ind,:)=[];ycal(ind,:)=[];enddd=[zj;n];(将新建立的校正子集和验证集组成一个矩阵)[coeff,score,latent,tsquare]=princomp(dd);(将新建立的校正子集和验证集进行主成分投影)p1=score(:,1);p2=score(:,2);(选取前两个主成分)plot(p1(1:100),p2(1:100),'ro',p1(101:end),p2(101:end),'b*')(画出在两个主成分空间校正集和验证集的二维空间分布图)legend('校正集','验证集')(图中的标题)xlabel('pc1')(x轴标题,pc1为第一主成分数)ylabel('pc2')(y轴标题,pc2为第二主成分数)title('选取之后的校正集和验证集在主成分中的分布图')(图片的标题)4)将已经通过马氏距离选择好的校正子集通过偏最小二乘法降维,用交叉相互验证确定最佳主成分数。通过下面matlab代码程序实现,得到图5-6:[xl,yl,xs,ys,beta,pctvar,mse]=plsregress(xcall,ycall,20,'cv',20);(对提取的校正集子集和对应的浓度数据进行偏最小二乘,mse为均方误差,是指参数估计值与参数真值之差平方的期望值,当mse达到最小时,说明真值与估计值最接近,选择这个时候的主因子数最适合)figureplot(0:20,mse(2,:),'ko');(画图)holdonplot(0:20,mse(2,:),'k');xpc=xs(:,1:15);(选取1到15个主成分个数)[x2,y2,xs1,ys1,beta1,pctvar1,mse1]=plsregress(xtest,ytest,20,'cv',20);(对验证集和相对应的浓度数据进行偏最小二乘法)xpc1=xs1(:,1:15);(选取1到15个主成分个数)xlabel('主因子数')ylabel('mse')title('非线性建模偏最小二乘的主因子数')%%对原来的建模偏最小二乘[x3,y3,xs3,ys3,beta3,pctvar3,mse3]=plsregress(xcal,ycal,20,'cv',20);(对原来的校正集和相对应的浓度数据进行偏最小二乘)figureplot(0:20,mse3(2,:),'ko');holdonplot(0:20,mse3(2,:),'k');xpc2=xs3(:,1:12);[x4,y4,xs4,ys4,beta4,pctvar4,mse4]=plsregress(xtest,ytest,20,'cv',20);xpc4=xs4(:,1:12);xlabel('主因子数')ylabel('mse')title('全局非线性建模偏最小二乘的主因子数')5)将主成分数据作为bp神经网络的输入层建立关联模型。通过下面matlab代码程序实现:p_train=xpc';t_train=ycall';p_test=xpc1';t_test=ytest';n=size(p_test,2);net=newff(p_train,t_train,8);(bp神经网络创建、训练及仿真测试)%设置训练参数net.trainparam.epochs=1000;net.trainparam.goal=1e-3;net.trainparam.lr=0.01;%训练网络net=train(net,p_train,t_train);6)用建好的模型验证验证集,通过下面matlab代码程序实现,得到图7:%仿真测试t_sim_bp=sim(net,p_test);%%性能评价%相关系数mx=mean(ytest);rmx=repmat(mx,100,1);b1=sum((ytest-rmx).^2);b2=sum((ytest-t_sim_bp').^2);r=sqrt(1-b2/b1);%预测标准偏差sep=sqrt(b2/(n-1));%相对误差errorerror_bp=abs(t_sim_bp-t_test)./t_test;error_bpp1=mean(error_bp);r2_bp=r;%结果对比result_bp=[t_test't_sim_bp'error_bp'];%xlsxwrite('e:\2016年work\3月份\专利\abc.xlsx',result_bp)figure(绘图)plot(1:n,t_test,'b:*',1:n,t_sim_bp,'r-o')legend('真实值','bp预测值')xlabel('预测样本')ylabel('烟叶尼古丁值')string={'测试尼古丁值含量预测结果对比';['r='num2str(r2_bp)'(bp)']};title(string)7)用全局建模并和建好的模型做对比,通过下面matlab代码程序实现,得到图8:%%全局建模bp神经网络p1_train=xpc2';t1_train=ycal';p1_test=xpc4';t1_test=ytest';n=size(p1_test,2);net=newff(p1_train,t1_train,8);(bp神经网络创建、训练及仿真测试)%设置训练参数net.trainparam.epochs=1000;net.trainparam.goal=1e-3;net.trainparam.lr=0.01;net=train(net,p1_train,t1_train);(训练网络)%仿真测试t1_sim_bp=sim(net,p1_test);%%性能评价mx1=mean(ytest);rmx1=repmat(mx1,100,1);b11=sum((ytest-rmx1).^2);b21=sum((ytest-t1_sim_bp').^2);r1=sqrt(1-b21/b11);(相关系数)sep1=sqrt(b21/(n-1));(预测标准偏差)%相对误差errorerror_bp1=abs(t1_sim_bp-t1_test)./t1_test;error_bpp1=mean(error_bp1);r2_bp1=r1;%结果对比result_bp1=[t1_test't1_sim_bp'error_bp1'];figureplot(1:n,t1_test,'b:*',1:n,t1_sim_bp,'r-o')(画图)legend('真实值','bp预测值')xlabel('预测样本')(x轴标题)ylabel('烟叶尼古丁值')(y轴标题)string={'全局建模测试尼古丁值含量预测结果对比';['r='num2str(r2_bp1)'(bp)']};title(string)(图形标题)xlswrite('e:\2016年work\3月份\专利\全局',result_bp1);(保存结果数据到文件夹)以下为非线性建模和全局建模对验证集的结果数据表:表1非线性建模验证集结果表2全局建模验证集结果表3真实值与两种模型预测值比较表名称真值全局模型预测值非线性模型预测值最大值3.944.633.70最小值1.320.961.46平均值2.802.842.75从表3中可以看出,全局建的模型其预测值上下限都超出了我们验证集模型的范围,而用我们设计的非线性建模方法,其上下限都在我们所建模型的范围之内。表4真实值与两种模型预测值相对误差表名称全局模型预测值非线性模型预测值相对误差0.140.10预测标准偏差0.450.35相关系数0.730.84从表4中可以看出非线性模型无论是预测偏差还是相关系数都要比全局建的模型好。请参阅图9,与上述方法实施例原理相似的是,本发明还提供近红外光谱的非线性建模系统9。由于上述方法实施例中的技术特征可以用于本系统实施例,因而不再重复赘述。系统9包括第一模块901至第五模块905。第一模块901用于准备多个实验样本,包括:采集各所述实验样本的光谱图,并转换成近红外光谱数据,可选的,还将各所述光谱图独立保存为各.dx格式的文件。第二模块902从各所述近红外光谱数据随机挑出一部分作为校正集,挑出一部分作为验证集。第三模块903将所述校正集和所述验证集通过主成分分析得到光谱特征空间。第四模块904在所述光谱特征空间中,通过马氏距离法选取所述校正集里与所述验证集的各个样本最近似的样本作为校正子集,例如,所述马氏距离法的计算公式为:其中,mdi为验证集中第i个样本到校正集的马氏距离,si为验证集中第i个样品的主成分得分矩阵,sj为校正集中第j个样本的主成分得分矩阵,v为主成分得分矩阵的协方差。第五模块905从所述校正子集中提取主成分数,作为bp神经网络的输入层建立回归模型,优选的,运用偏最小二乘法对所述校正子集通过交叉有效性分析确定主成分数,将所述主成分数作为bp神经网络的输入层建立非线性模型。在另一实施例中,所述系统9还可以包括第六模块,用于根据所述回归模型验证所述验证集中的样本。在此基础上,所述系统9还可以包括第七模块,用于根据用全局建模方法验证所述验证集中的样本,并将验证结果与所述回归模型得到的验证结果比对等。综上所述,本发明的基于近红外光谱的非线性建模方法及系统,有效克服了现有技术中的种种缺点而具高度产业利用价值。上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属
技术领域
中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1