偏最小二乘法PLS分类,多输入单输出模型。

偏最小二乘法PLS分类,多输入单输出模型。_第1张图片%%  清空环境变量
warning off             % 关闭报警信息
close all               % 关闭开启的图窗
clear                   % 清空变量
clc                     % 清空命令行

 

res = xlsread('数据集.xlsx');
%% 划分训练集和测试集%
num_dim = size(res, 2) - 1;               % 特征维度
num_class = length(unique(res(:, end)));  % 类别数(Excel最后一列放类别)

P_train = res(1: 250, 1: 12)';
T_train = res(1: 250, 13)';
M = size(P_train, 2);

P_test = res(251: end, 1: 12)';
T_test = res(251: end, 13)';
N = size(P_test, 2);

%%  数据转置
% P_train = P_train'; P_test = P_test';
% T_train = T_train'; T_test = T_test';

%%  数据归一化
[p_train, ps_input] = mapminmax(P_train, 0, 1);
p_test  = mapminmax('apply', P_test, ps_input);
t_train = ind2vec(T_train);
t_test  = ind2vec(T_test );

%%  转置以适应模型
p_train = p_train'; p_test = p_test';
t_train = t_train'; t_test = t_test';

%%  创建模型
k = 12;      % 保留主成分个数
[Xloadings, Yloadings, Xscores, Yscores, betaPLS, PLSPctVar, MSE, stats] = plsregress(p_train, t_train, k);

你可能感兴趣的:(算法)