无信息变量消除法研究及实现(Matlab代码实现)

           目录

1 概述

2 运行结果

3 参考文献

‍4 Matlab代码


1 概述

波长变量筛选的方法主要有相关系数法,逐步回归法,无信息变量消除法(UVE),遗传算法(genetic algorithm,GA)等,其中无信息变量消除法的研究和应用在国内的报道较少。无信息变量消除算法是新的变量筛选方法,该算法最初由Centner等人提出来,并用于NIR光谱数据,其目的是为了减少最终PLS模型中包含的变量数,降低模型的复杂性,改善PLS模型,还与其它相关方法进行了比较,UVE方法得到的结果的SEP最小。

2 运行结果

无信息变量消除法研究及实现(Matlab代码实现)_第1张图片

3 参考文献

[1]陈媛媛,王志斌,王召巴.基于无信息变量消除法与岭极限学习机的新型变量选择方法:以CO气体浓度反演为例(英文)[J].光谱学与光谱分析,2017,37(01):299-305.

‍4 Matlab代码

主函数部分代码:

clear all
clc

%% 训练集/测试集产生
load('RAW.mat');
RAW1=RAW(:,:);
RAW=RAW1(:,1:254);
LLL=RAW1(:,255);
[oo, pp]=size(RAW);
temp = randperm(oo);%训练集和预测集按照3:1分类
P_train = RAW(temp(1:300),:);
T_train = LLL(temp(1:300),:);
P_test = RAW(temp(301:end),:);
T_test = LLL(temp(301:end),:);
X=RAW(:,:);
y=LLL(:,:);

%% 无信息变量消除法实现
[mean_b,std_b,t_values,var_retain,RMSECVnew,Yhat,E]=plsuve(X,y,10,400,254);%10是最佳因子数,400是留一法的次数,一般取样本数,254是加入的随机噪声的波段数,可以取等值也就是样本波段数,其他的参数不用设置

你可能感兴趣的:(优化算法,matlab,python,开发语言)