利用偏最小二乘法选出最重要的特征波段Matlab「终于解决」

利用偏最小二乘法选出最重要的特征波段Matlab「终于解决」%计算偏最小二乘(PLS)回归模型的投影(VIP)分数中的变量重要性。当变量之间存在多重共线性时,%您可以使用VIP来选择预测变量。VIP分数大于3的变量被认为对于PLS回归模型的预测很重要%%%加载光谱数据loadspectraX=NIR;y=octane;%指定组件的数量ncomp,具体可以借鉴PLSRandPCAncomp=2;%对y中的预测变量使用y中响应的10个分量执行PLS回归x[XL,yl,XS,YS,beta…

大家好,欢迎来到IT知识分享网。

% 计算偏最小二乘 (PLS) 回归模型的投影 (VIP) 分数中的变量重要性。当变量之间存在多重共线性时,
% 您可以使用 VIP 来选择预测变量。VIP 分数大于 3 的变量被认为对于 PLS 回归模型的预测很重要

%%
% 加载光谱数据
load spectra
X = NIR;
y = octane;

% 指定组件的数量ncomp ,具体可以借鉴PLSRandPCA
ncomp = 2;


% 对y中的预测变量使用y中响应的10个分量执行PLS回归x
[XL,yl,XS,YS,beta,PCTVAR,MSE,stats] = plsregress(X,y,ncomp);

% 计算归一化的PLS的权重
W0 = stats.W ./ sqrt(sum(stats.W.^2,1));

% 计算ncomp组件的VIP分数
p = size(XL,1);
sumSq = sum(XS.^2,1).*sum(yl.^2,1);
vipScore = sqrt(p* sum(sumSq.*(W0.^2),2) ./ sum(sumSq,2));

% 查找VIP分数大于或等于3的变量
indVIP = find(vipScore >= 3); % 具体数字 可自定义

% 绘制VIP分数
scatter(1:length(vipScore),vipScore,'x')
hold on
scatter(indVIP,vipScore(indVIP),'rx')
plot([1 length(vipScore)],[3 3],'--k')
hold off
axis tight
xlabel('Predictor Variables')
ylabel('VIP Scores')

得到VIP分数大于3 的波段,定义为特征波段

利用偏最小二乘法选出最重要的特征波段Matlab「终于解决」

 红色为大于3的重要波段。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/24640.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信