Matlab中的偏最小二乘法(PLS)回归模型,离群点检测和变量选择
全文下载:http://tecdat.cn/?p=22319
本文建立偏最小二乘法(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数量。
点击标题查阅相关内容
R语言中的偏最小二乘回归PLS-DA
左右滑动查看更多
01
02
03
04
蒙特卡洛交叉验证(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: 10000Q: 2model: \[10000x700 double\]minutes: 0.6683method: '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-DA
R语言生态学建模:增强回归树(BRT)预测短鳍鳗生存分布和影响因素
R语言实现偏最小二乘回归法 partial least squares (PLS)回归
Matlab中的偏最小二乘法(PLS)回归模型,离群点检测和变量选择
偏最小二乘回归(PLSR)和主成分回归(PCR)
R语言如何找到患者数据中具有差异的指标?(PLS—DA分析)
Matlab中的偏最小二乘法(PLS)回归模型,离群点检测和变量选择相关推荐
- matlab pls rmsecv,偏最小二乘法PLS回归NIPALS算法及Matlab程序及例子.doc
偏最小二乘法PLS回归NIPALS算法及Matlab程序及例子 偏最小二乘法PLS回归NIPALS算法的Matlab程序及例子 function [T,P,W,Wstar,U,b,C,B_pls,.. ...
- r语言pls分析_R语言中的偏最小二乘PLS回归算法
偏最小二乘回归: 我将围绕结构方程建模(SEM)技术进行一些咨询,以解决独特的业务问题.我们试图识别客户对各种产品的偏好,传统的回归是不够的,因为数据集的高度分量以及变量的多重共线性.PLS是处理这些 ...
- MATLAB中的偏最小二乘回归(PLSR)和主成分回归(PCR)
通过Matlab示例来解释偏最小二乘的原理 此示例显示如何在matlab中应用偏最小二乘回归(PLSR)和主成分回归(PCR),并讨论这两种方法的有效性. 当存在大量预测变量时,PLSR和PCR都是对 ...
- MATLAB光伏并网仿真模型,在Matlab中建立光伏电站接入系统模型,包括光伏发电逆变器及负荷模型等
MATLAB光伏并网仿真模型,在Matlab中建立光伏电站接入系统模型,包括光伏发电逆变器及负荷模型等,仿真分析接入点处的电能质量,实现高品质并网运行. 太阳能电池,MPPT,包括输电线路,接入三电平 ...
- plsr matlab,matlab中的偏最小二乘回归(PLSR)和主成分回归(PCR)
pls可以选择通过交叉验证来估计均方预测误差(MSEP),在这种情况下使用10倍CV. R 1 [X1,Y1,Xs,Ys,β,pctVar,PLSmsep]=plsregress(X,y,10,'CV ...
- matlab中ch3_1,Ch3_3最小二乘法1.ppt
Ch3_3最小二乘法1 曲线拟合的最小二乘法 如果f(x)只在一组离散点集{xi,i=0,1,-,m}上给定这就是科学实验中经常见到的实验数据{(xi,yi),i=0,1,-,m}的曲线拟合,这里yi ...
- 脑电信号(EEG)处理中的机器学习方法总结——回归模型,SVM、K近邻、人工神经网络、朴素贝叶斯、决策树和随机森林、集成学习、模糊逻辑、LDA线性判别分析、K-means聚类、强化学习、迁移学习
本文归纳总结了机器学习在脑电分析中的应用,并详细介绍回归模型,SVM.K近邻.人工神经网络.朴素贝叶斯.决策树和随机森林.集成学习.模糊逻辑.LDA线性判别分析.K-means聚类.强化学习.迁移学习 ...
- matlab人口增长线性回归拟合_在matlab中实现线性回归和logistic回归
本文主要讲解在matlab中实现Linear Regression和Logistic Regression的代码,并不涉及公式推导.具体的计算公式和推导,相关的机器学习文章和视频一大堆,推荐看Andr ...
- (三十五:2021.01.12)MICCAI 2019学习(一)《前列腺近距离放射治疗中粒子定位的深度回归模型》
<A Deep Regression Model for Seed Localizationin Prostate Brachytherapy> 讲在前面 摘要 论文内容 1.介绍 2.方 ...
最新文章
- 弹性分组环(RPR)技术特点及其在城域网中的应用
- python中文意思k-python-RepeatedKFold实际上是什么意思?
- pyqt5知识:如何接受密码输入?
- python numpy库安装winerror5_(转载)Numpy安装中遇到的问题和解决方法
- Neko does Maths
- opengl加载显示3D模型STL类型文件
- Java类加载器(二)——自定义类加载器
- 第三十四期:花了一个星期,我终于把RPC框架整明白了!
- mysql 5.6.11.tar.gz_mysql5.6.11.tar.gz安装
- Web安全实践(12)密码探测
- maskrcnn配置 模块‘keras.engine‘没有属性“Layer”
- IE不能打开网页的解决方案
- 【HarmonyOS】【Json解析】ZSON 与 HiJson 使用
- Java之美[从蛮荒到撬动地球]之设计模式二
- 有管网气体消防系统小知识来啦
- Excel格式的SNP数据怎么变为plink格式
- 〖Python接口自动化测试实战篇⑦〗- 接口抓包工具 Fiddler 的使用
- 电脑计算机主板不启动,电脑主板不能启动的解决方法
- 29.Silverlight碰撞测试、检测自定义控件碰撞,雷达扫描图之扫描雷达点状态
- video.js 自定义播放组件
热门文章
- 锐捷GRE over ipsec vxn配置 ----尚文网络奎哥
- Java实现快递管理系统四(View+Main+Dao总结)
- 达思Linux数据恢复ext破解版,达思Linux数据恢复软件
- Kettle 使用详解
- php音视频点播,使用 PHP 搭建自己的视频点播网站
- wireshark+网管交换机抓包教程
- 高斯消元法求解线性方程组——C语言实现
- tflearn教程_环境部署——Windows下安装配置tensorflow和tflearn
- 2068. 整数拼接
- 2018南昌java工资_【帆软软件工资】java开发工程师待遇-看准网