本文建设偏最小二乘法(PLS)回归(PLSR)模型,以及预测性能评估。为了建设一个牢靠的模型,咱们还实现了一些罕用的离群点检测和变量抉择办法,能够去除潜在的离群点和只应用所选变量的子集来 "荡涤 "你的数据。

步骤

  • 建设PLS回归模型
  • PLS的K-折穿插验证
  • PLS的蒙特卡洛穿插验证(MCCV)。
  • PLS的双重穿插验证(DCV)
  • 应用蒙特卡洛抽样办法进行离群点检测
  • 应用CARS办法进行变量抉择。
  • 应用挪动窗口PLS(MWPLS)进行变量抉择。
  • 应用蒙特卡洛无信息变量打消法(MCUVE)进行变量抉择
  • 进行变量抉择

建设PLS回归模型

这个例子阐明了如何应用基准近红外数据建设PLS模型。

plot(X');               % 显示光谱数据。xlabel('波长指数');ylabel('强度');

参数设定

A=6;                    % 潜在变量(LV)的数量。method='center';        % 用于建设PLS模型的X的外部预处理办法PLS(X,y,A,method);  % 建设模型的命令

 

pls.m函数返回一个蕴含成分列表的对象PLS。后果解释。

regcoef_original:连贯X和y的回归系数。
X_scores:X的得分。
VIP:预测中的变量重要性,评估变量重要性的一个规范。
变量的重要性。
RMSEF:拟合的均方根误差。
y_fit:y的拟合值。
R2:Y的解释变异的百分比。 

PLS的K折穿插验证

阐明如何对PLS模型进行K折穿插验证

clear;A=6;                          % LV的数量K=5;                          % 穿插验证的次数

plot(CV.RMSECV)               % 绘制每个潜在变量(LVs)数量下的RMSECV值xlabel('潜在变量(LVs)数量')          % 增加x标签ylabel('RMSECV')              % 增加y标签

返回的值CV是带有成分列表的构造数据。后果解释。

RMSECV:穿插验证的均方根误差。越小越好
Q2:与R2含意雷同,但由穿插验证计算得出。
optLV:达到最小RMSECV(最高Q2)的LV数量。 

蒙特卡洛穿插验证(MCCV)的PLS

阐明如何对PLS建模进行MCCV。与K-fold CV一样,MCCV是另一种穿插验证的办法。

% 参数设置A=6;method='center';N=500;                          % Monte Carlo抽样的数量% 运行mccv.plot(MCCV.RMSECV);              % 绘制每个潜在变量(LVs)数量下的RMSECV值xlabel('潜在变量(LVs)数量');
   

MCCV

MCCV是一个结构性数据。后果解释。

Ypred:预测值
Ytrue:实在值
RMSECV:穿插验证的均方根误差,越小越好。
Q2:与R2含意雷同,但由穿插验证计算得出。 

PLS的双重穿插验证(DCV)

阐明如何对PLS建模进行DCV。与K-fold CV一样,DCV是穿插验证的一种形式。

% 参数设置N=50;                                 % Monte Carlo抽样的数量dcv(X,y,A,k,method,N);DCV

应用蒙特卡洛抽样办法的离群点检测

阐明离群点检测办法的应用状况

A=6;method='center';F=mc(X,y,A,method,N,ratio);

后果解释。

predError:每个抽样中的样本预测误差
MEAN:每个样本的均匀预测误差
STD:每个样本的预测误差的标准偏差 

plot(F) % 诊断图

注:MEAN值高或SD值高的样本更可能是离群值,应思考在建模前将其剔除。

应用CARS办法进行变量抉择。

A=6;fold=5;car(X,y,A,fold);

后果解释。

optLV:最佳模型的LV数量
vsel:选定的变量(X中的列)。 

plotcars(CARS); % 诊断图

注:在这幅图中,顶部和两头的面板显示了抉择变量的数量和RMSECV如何随着迭代而变动。底部面板形容了每个变量的回归系数(每条线对应一个变量)如何随着迭代而变动。星形垂直线示意具备最低RMSECV的最佳模型。

应用挪动窗口PLS(MWPLS)进行变量抉择

load corn_m51;                      % 示例数据width=15;                           % 窗口大小mw(X,y,width);plot(WP,RMSEF);xlabel('窗口地位');

注:从该图中倡议将RMSEF值较低的区域纳入PLS模型中。

应用蒙特卡洛无信息变量打消法(MCUVE)进行变量抉择

N=500;method='center';UVE

plot(abs(UVE.RI))

后果解释。RI:UVE的可靠性指数,是对变量重要性的测量,越高越好。

进行变量抉择

A=6;N=10000;method='center';FROG=rd_pls(X,y,A,method,N);              N: 10000              Q: 2          model: \[10000x700 double\]        minutes: 0.6683         method: 'center'          Vrank: \[1x700 double\]         Vtop10: \[505 405 506 400 408 233 235 249 248 515\]    probability: \[1x700 double\]           nVar: \[1x10000 double\]          RMSEP: \[1x10000 double\]

xlabel('变量序号');ylabel('抉择概率');

后果解释:

模型后果是一个矩阵,贮存了每一个互相关系中的抉择变量。
概率:每个变量被蕴含在最终模型中的概率。越大越好。这是一个掂量变量重要性的有用指标。