主题:【第十三届原创】NIR模型建立的几种定量回归算法简介

浏览 |回复1 电梯直达
导演叫我趴下脸着地
结帖率:
100%
关注:0 |粉丝:0
新手级: 新兵
维权声明:本文为Insp_f6c3db88原创作品,本作者与仪器信息网是该作品合法使用者,该作品暂不对外授权转载。其他任何网站、组织、单位或个人等将该作品在本站以外的任何媒体任何形式出现均属侵权违法行为,我们将追究法律责任。
NIR模型建立的几种定量回归算法简介

粒子群-核岭回归

粒子群优化算法

粒子群优化算法(Particle Swarm OptimizationPSO)是1995年提出的一种使用粒子来模拟鸟群中鸟的捕食,通过判断与目标点的距离来寻找全局最优点的随机优化算法。粒子有速度和位置两个属性,通过定位当前所在的最优位置(pbest)和当前同伴能发现的最优位置(gbest)来改变速度的方向和快慢,直到找到整个群体中所有粒子能发现的最好的位置,即最优解。

                                                 



式中,i=1,2,3,…,NN为粒子总数。vi是第i粒子的速度,也是粒子当前的记忆项,为惯性因子,rand()表示在(0,1)之间的随机数,xi是当前的位置,c1c2是学习因子,一般c1=c2=1c1×rand()×(pbesti-xi)为自身认知项,c2×rand()×(gbseti-xi)为整个群体的认知项。

PSO算法的计算过程如下:

1)对一个规模为N的种群进行初始化。

2)计算得到每个粒子的适应度。

3)每个粒子比较位置最优值pbest和其适应值,如果适应值更好,则将其更新为当前最优位置。

4)每个粒子比较全局最优值gbest和当前位置最优值pbest,如果pbest适应度更好,则用pbest代替gbest

5)根据式(3-17)和式(3-18)调整微粒的速度和位置。

6)如果结束的条件没有达到再转到第(2)步。

PSO算法的流程示意图如下图所示。

PSO算法流程示意图



核岭回归

核岭回归[59]Kernel Ridge RegressionKRR)是CristianiniShawe-Taylor2000年提出来的,在岭回归中使用核技巧。岭回归是一种改良的最小二乘方法,使用了L2正则化相对最小二乘法以损失部分精度来获得泛化能力较高的模型,在处理具有多重共线性特征的数据的时候具有较好的预测效果,获得的回归系数可以更加准确。而对于L2正则化的线性模型,都可以引入核技巧,这样就可以在岭回归中加入核函数。核函数的优点是可以将数据从低维空间通过坐标变换的方式映射到高维空间,从而使得数据更加具有可分性,缺点就是在数据维度过多时模型训练效率降低。

岭回归的优化的目标函数为:

                             



式中为多元线性回归的残差平方和,为惩罚函数,为惩罚系数。将转换成核函数代替就可以得到岭回归的学习策略:

       



训练KRR模型及结果预测

核岭回归主要通过调整正则化系数来对模型进行优化,选择适当的正则化系数对于提高模型的预测能力具有显著效果。利用PSO算法,预测结果和真实结果的偏差作为目标函数对正则化系数进行选择,找到使模型预测效果最好的正则化系数。图为粒子群-核岭回归的算法流程。

粒子群-核岭回归算法流程

对原始光谱进行预处理并将所有数据分成训练集和预测集。光谱数据多呈线性相关,因此选择线性核函数来进行建模。核岭回归中主要通过改变正则化系数来提高模型的预测结果,一般通过手动调节,这种方法操作慢且不容易找到最优解。通过利用PSO优化算法,粒子群数目选择50,目标参数正则化系数alpha的范围在 1×10-9~1×10-5之间,更新的最小速度为1×10-9,获得的最优解为alpha=7.68101079×10-6。将建立好的KRR模型存档,来对预测集数据进行预测。预测值和预测集的真实值的均方根误差RMSE0.221,相关系数R0.981,如下图所示。



KRR的预测值和真实值



粒子群-支持向量回归

SVR数学模型

在支持向量回归(Support Vector Regression,SVR)中给定训练集,对于目标函数,使得f(x)y的值尽可能接近。b是待确定的参数。支持向量回归中f(x)y之间可以允许有一定的偏差,假设可接受的偏差为,当f(x)y两者差的绝对值大于的时候才算作损失。这就相当于建立一个以f(x)为中心,宽度为2的分隔带,当训练样本的位置属于分隔带的范围内时,就表示这个预测结果是正确的。示意图如下图所示。

SVR示意图



于是可以转化为优化问题:

                           



其中,为惩罚系数,为不敏感损失函数(insensitive loss)。

                                   



把松弛变量带入,可以得到:

                         



直接求解式(3-23)比较困难,因此可以应用拉格朗日对偶性,将其转化成对偶问题,通过这种方式不仅可以简化计算,而且可以比较自然地引入核函数。定义拉格朗日函数为:

 

               



将式(3-24)代入式(3-23)中,便可以将复杂难求解的问题转化成支持向量回归的对偶问题。



将式(3-24)代入式得,

                     



KTT条件可得,

                   

                     



表示将x映射到高维空间的特征向量,将式代入可得支持向量回归的函数为,

                 



式中,为核函数。

模型训练及结果预测

支持向量回归中,使用RBF核函数一般可以达到较高的精度,然而在特征数比较多、样本数较少的情况下,使用线性核函数便可以达到与使用RBF核函数相同的效果。线性核函数只需要调整一个惩罚系数C来优化模型,比起RBF核函数寻找最优值更简单,因此支持向量回归模型中的核函数选择线性核函数。调整惩罚系数C的大小,C越大,表示对数据的惩罚力度越小,更多的信息保留下来,但是容易导致过拟合;C越小,表示对数据惩罚力度加大,放弃越多的有效信息,然而容易导致欠拟合。同样利用3.3.2.1所给出的PSO优化算法,在C13000的范围内搜索,步长为1,得到C使得模型效果最好的值为2574PSO-SVR模型的流程示意图如下图所示。

PSO-SVR算法流程图



在训练集上用惩罚系数为2574SVR模型对数据进行训练,将训练好的模型在预测集上进行预测,得到的预测集结果与实际结果的均方根误差RMSE

R2分别为0.2070.972,结果如下图所示。

SVR预测值和真实值

附件:
为您推荐
饕餮之徒
结帖率:
100%
关注:0 |粉丝:0
新手级: 新兵