发明名称 基于粒子群算法的近红外光谱波长选择方法
摘要 一种基于粒子群算法的近红外光谱波长选择方法,采集样本的近红外光谱信号,构成现场历史数据库,数据库包含有多个波长变量,将粒子群算法与偏最小二乘法(partial linear squares,PIS)相结合,对近红外光谱的各个波长进行选择,从而使得所建立的校正模型具有更强的预测能力,实现对物质成分浓度的精确检测与分析,为近红外光谱分析技术在各工业领域的应用提供更好的理论基础,具有重要的现实意义。
申请公布号 CN103913432B 申请公布日期 2016.01.20
申请号 CN201410114669.3 申请日期 2014.03.25
申请人 西安交通大学 发明人 曹晖;王燕霞;张彦斌;周延
分类号 G01N21/359(2014.01)I 主分类号 G01N21/359(2014.01)I
代理机构 西安智大知识产权代理事务所 61215 代理人 何会侠
主权项 一种基于粒子群算法的近红外光谱波长选择方法,其特征在于:步骤如下:步骤1:首先采集样本的近红外光谱信号,构成现场历史数据库D,数据库D的测量光谱为近红外光谱;数据库D包括有N个波长变量;步骤2:近红外光谱波长选择方法使用蒙特卡洛Monte‑Carlo,MC方法,按照预设比例R:1将数据库D随机划分为训练集和验证集;步骤3:近红外光谱波长选择方法初始化训练集,随机选取Num个粒子,每个粒子代表一个数据对象,即每个粒子是一个N维向量,Num即为粒子群大小;将这Num个粒子的飞行速度进行随机初始化;步骤4:近红外光谱波长选择方法采用二进制编码对每个粒子进行位置编码;每个粒子长度等于全部波长N,每个波长对应一个二进制码,其中数值‘1’表示对应的波长被选中,数值‘0’表示对应的波长未被选中;步骤5:近红外光谱波长选择方法采用偏最小二乘法partial linear squares,PLS建立分析校正模型,并选取交叉验证均方根误差RMSECV作为适应度函数,计算每个粒子的适应度值,并记录个体最优解p<sub>i</sub>和全局最优解p<sub>g</sub>;交叉验证均方根误差RMSECV的计算公式为:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>R</mi><mi>M</mi><mi>S</mi><mi>E</mi><mi>C</mi><mi>V</mi><mo>=</mo><msqrt><mfrac><mrow><munderover><mo>&Sigma;</mo><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><mrow><mi>K</mi><mi>p</mi></mrow></munderover><mrow><mo>(</mo><msub><mi>y</mi><mi>k</mi></msub><mo>-</mo><msubsup><mi>y</mi><mi>k</mi><mo>*</mo></msubsup><mo>)</mo></mrow></mrow><mrow><mi>K</mi><mi>p</mi></mrow></mfrac></msqrt></mrow>]]></math><img file="FDA0000822734860000011.GIF" wi="544" he="233" /></maths>式中,Kp为交叉验证集的样本数,y<sub>k</sub>为第k个样本的实际测量浓度,<img file="FDA0000822734860000012.GIF" wi="63" he="77" />为第k个样本的预测浓度;步骤6:近红外光谱波长选择方法按照下式更新粒子的飞行速度,<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msub><mi>p</mi><mi>c</mi></msub><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><msub><mi>p</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub></mtd><mtd><mrow><mn>0</mn><mo>&le;</mo><msub><mi>r</mi><mn>1</mn></msub><mo>&lt;</mo><msub><mi>f</mi><mi>c</mi></msub></mrow></mtd></mtr><mtr><mtd><msub><mi>p</mi><mrow><mi>g</mi><mi>j</mi></mrow></msub></mtd><mtd><mrow><msub><mi>f</mi><mi>c</mi></msub><mo>&le;</mo><msub><mi>r</mi><mn>1</mn></msub><mo>&le;</mo><mn>1</mn></mrow></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0000822734860000021.GIF" wi="443" he="164" /></maths><maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><msubsup><mi>v</mi><mrow><mi>i</mi><mi>j</mi></mrow><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow></msubsup><mo>=</mo><mi>&omega;</mi><mo>&CenterDot;</mo><msubsup><mi>v</mi><mrow><mi>i</mi><mi>j</mi></mrow><mi>k</mi></msubsup><mo>+</mo><mi>a</mi><mo>&CenterDot;</mo><msub><mi>r</mi><mn>2</mn></msub><mo>&CenterDot;</mo><mrow><mo>(</mo><msub><mi>p</mi><mi>c</mi></msub><mo>-</mo><msubsup><mi>x</mi><mrow><mi>i</mi><mi>j</mi></mrow><mi>k</mi></msubsup><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000822734860000022.GIF" wi="581" he="92" /></maths>式中,p<sub>c</sub>为参考状态,p<sub>ij</sub>为个体最优解p<sub>i</sub>第j维的位置编码,p<sub>gj</sub>为全局最优解p<sub>g</sub>第j维的位置编码,r<sub>1</sub>和r<sub>2</sub>均为[0,1]之间的随机数,f<sub>c</sub>为选择系数,k为当前迭代次数,ω为惯性因子,a为加速度系数,<img file="FDA0000822734860000023.GIF" wi="78" he="93" />为当前迭代第i个粒子第j维的飞行速度,<img file="FDA0000822734860000024.GIF" wi="67" he="91" />为当前迭代第i个粒子第j维的位置编码,<img file="FDA0000822734860000025.GIF" wi="88" he="88" />为下一次迭代第i个粒子第j维的飞行速度;步骤7:近红外光谱波长选择方法按照下式更新粒子的位置编码,<img file="FDA0000822734860000026.GIF" wi="643" he="251" />式中,ρ为[0,1]之间的随机数,k为当前迭代次数,<img file="FDA0000822734860000027.GIF" wi="89" he="85" />为下一次迭代第i个粒子第j维的飞行速度,<img file="FDA0000822734860000028.GIF" wi="89" he="93" />为下一次迭代第i个粒子第j维的位置编码;步骤8:近红外光谱波长选择方法重复步骤4~步骤7,直到达到最大迭代次数Iter_n或者适应度函数RMSECV达到设定的适应度值fitness;输出全局最优解;步骤9:近红外光谱波长选择方法根据输出的全局最优解的二进制编码,得到所选择的波长变量,数值‘1’表示对应的波长被选中,数值‘0’表示对应的波长未被选中。
地址 710049 陕西省西安市咸宁路28号