Predicción de regresión | MATLAB implementa la reducción de dimensionalidad del componente principal PCA-BP combinada con la predicción de regresión de salida única de múltiples entradas de la red neuronal BP

Predicción de regresión | MATLAB implementa la reducción de dimensionalidad del componente principal PCA-BP combinada con la predicción de regresión de salida única de múltiples entradas de la red neuronal BP

Lista de efectos

inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

3

introducción básica

MATLAB implementa el algoritmo de reducción de dimensionalidad del componente principal PCA-BP combinado con la predicción de regresión de salida única de múltiples entradas de la red neuronal BP (código fuente completo y datos) 1. Ingrese
múltiples características y genere una sola variable;
2. Regresión de múltiples entradas y salida única predicción;
3. Evaluación de indicadores múltiples, la calidad del código es extremadamente alta, los datos de Excel son fáciles de reemplazar y el entorno operativo es 2018 y superior; 4.
Indicadores de evaluación MAE, MBE, R2, la calidad del código es extremadamente alta y los datos son fáciles para aprender y reemplazar
5. Requiere la versión 2018 y superior.


programación

  • Código fuente completo y método de adquisición de datos: respuesta de mensaje privado a MATLAB para implementar la reducción de dimensionalidad del componente principal PCA-BP combinada con la predicción de regresión de salida única de múltiples entradas de la red neuronal BP .
%%  清空环境变量
warning off             % 关闭报警信息
close all               % 关闭开启的图窗
clear                   % 清空变量
clc                     % 清空命令行

%%  导入数据
res = xlsread('data.xlsx');

%%  划分训练集和测试集
temp = randperm(103);

P_train = res(temp(1: 80), 1: 7)';
T_train = res(temp(1: 80), 8)';
M = size(P_train, 2);

P_test = res(temp(81: end), 1: 7)';
T_test = res(temp(81: end), 8)';
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);



%%  仿真测试
t_sim1 = sim(net, p_train);
t_sim2 = sim(net, p_test);

%%  数据反归一化
T_sim1 = mapminmax('reverse', t_sim1, ps_output);
T_sim2 = mapminmax('reverse', t_sim2, ps_output);

%%  均方根误差
error1 = sqrt(sum((T_sim1 - T_train).^2) ./ M);
error2 = sqrt(sum((T_sim2 - T_test ).^2) ./ N);



%%  相关指标计算
% 决定系数 R2
R1 = 1 - norm(T_train - T_sim1)^2 / norm(T_train - mean(T_train))^2;
R2 = 1 - norm(T_test -  T_sim2)^2 / norm(T_test -  mean(T_test ))^2;

disp(['训练集数据的R2为:', num2str(R1)])
disp(['测试集数据的R2为:', num2str(R2)])

% 平均绝对误差 MAE
mae1 = sum(abs(T_sim1 - T_train)) ./ M ;
mae2 = sum(abs(T_sim2 - T_test )) ./ N ;

disp(['训练集数据的MAE为:', num2str(mae1)])
disp(['测试集数据的MAE为:', num2str(mae2)])

% 平均相对误差 MBE
mbe1 = sum(T_sim1 - T_train) ./ M ;
mbe2 = sum(T_sim2 - T_test ) ./ N ;

disp(['训练集数据的MBE为:', num2str(mbe1)])
disp(['测试集数据的MBE为:', num2str(mbe2)])

Referencias

[1] https://blog.csdn.net/kjm13182345320/article/details/129215161
[2] https://blog.csdn.net/kjm13182345320/article/details/128105718

Supongo que te gusta

Origin blog.csdn.net/kjm13182345320/article/details/132744276
Recomendado
Clasificación