资源下载:
资源合集:
目录
一,概述
偏最小二乘法是一种新型的多元统计数据分析方法,于1983年由S.Wold和C.Albano等人首次提出。偏最小二乘法实现了,在一个算法下,可以同时实现回归建模(多元线性回归)、数据结构简化(主成分分析)以及两组变量之间的相关性分析(典型相关分析)。
PCA方法虽解决了自变量共线性的问题,但是并没有考虑自变量主元对于因变量变化的解释作用。所以删除的次要主元有可能包含对回归有益的信息,而保留的主元有可能会夹杂一些对回归模型输出无益的噪声。
PLS方法,通过将自变量和因变量的高维数据空间投影到相应的低维空间,分别得到自变量和因变量的相互正交的特征向量,再建立自变量和因变量的特征向量间的一元线性回归关系。不仅可以克服共线性问题,它在选取特征向量时强调自变量对因变量的解释和预测作用,去除了对回归无益噪声的影响,使模型包含最少的变量数。
二,代码
代码中文注释非常清晰,按照示例数据修改格式,替换数据集即可运行,数据集为excel。
部分代码如下:
%% 清空环境变量
warning off % 关闭报警信息
close all % 关闭开启的图窗
clear % 清空变量
clc % 清空命令行
%% 导入数据
res = xlsread('数据集.xlsx');
%% 数据分析
num_size = 0.7; % 训练集占数据集比例
outdim = 1; % 最后一列为输出
num_samples = size(res, 1); % 样本个数
res = res(randperm(num_samples), :); % 打乱数据集(不希望打乱时,注释该行)
num_train_s = round(num_size * num_samples); % 训练集样本个数
f_ = size(res, 2) - outdim; % 输入特征维度
%% 划分训练集和测试集
P_train = res(1: num_train_s, 1: f_)';
T_train = res(1: num_train_s, f_ + 1: end)';
M = size(P_train, 2);
P_test = res(num_train_s + 1: end, 1: f_)';
T_test = res(num_train_s + 1: end, f_ + 1: end)';
N = size(P_test, 2);
%% 数据归一化
[p_train, ps_input] = mapminmax(P_train, 0, 1);
p_test = mapminmax('apply', P_test, ps_input);
[t_train, ps_output] = mapminmax(T_train, 0, 1);
t_test = mapminmax('apply', T_test, ps_output);
%% 转置以适应模型
p_train = p_train'; p_test = p_test';
t_train = t_train'; t_test = t_test';
......
三,运行结果
资源下载: