共计 3270 个字符,预计需要花费 9 分钟才能阅读完成。
全文下载:http://tecdat.cn/?p=22319
最近咱们被客户要求撰写对于偏最小二乘法(PLS)回归的钻研报告,包含一些图形和统计输入。
本文建设偏最小二乘法(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('抉择概率');
后果解释:
模型后果是一个矩阵,贮存了每一个互相关系中的抉择变量。\
概率:每个变量被蕴含在最终模型中的概率。越大越好。这是一个掂量变量重要性的有用指标。
本文摘选 《 Matlab 中的偏最小二乘法(PLS)回归模型,离群点检测和变量抉择 》,点击“ 浏览原文”获取全文残缺材料。
点击题目查阅往期内容
R 语言实现偏最小二乘回归法 partial least squares (PLS)回归 \
R 语言中的 block Gibbs 吉布斯采样贝叶斯多元线性回归 R 语言 Lasso 回归模型变量抉择和糖尿病倒退预测模型 \
R 语言实现贝叶斯分位数回归、lasso 和自适应 lasso 贝叶斯分位数回归剖析 \
Python 贝叶斯回归剖析住房累赘能力数据集 \
Python 用 PyMC3 实现贝叶斯线性回归模型 \
R 语言区间数据回归剖析 \
R 语言用 LOESS(部分加权回归)节令趋势合成(STL)进行工夫序列异样检测 \
PYTHON 用时变马尔可夫区制转换(MRS)自回归模型剖析经济工夫序列 \
R 语言随机森林 RandomForest、逻辑回归 Logisitc 预测心脏病数据和可视化剖析 \
基于 R 语言实现 LASSO 回归剖析 \
Python 用 PyMC3 实现贝叶斯线性回归模型 \
应用 R 语言进行多项式回归、非线性回归模型曲线拟合 \
R 语言中的偏最小二乘回归 PLS-DAR 语言生态学建模:加强回归树(BRT)预测短鳍鳗生存散布和影响因素 \
R 语言实现偏最小二乘回归法 partial least squares (PLS)回归 \
Matlab 中的偏最小二乘法(PLS)回归模型,离群点检测和变量抉择 \
偏最小二乘回归(PLSR)和主成分回归(PCR)\
R 语言如何找到患者数据中具备差别的指标?(PLS—DA 剖析)