Red neuronal profunda para predicción de series temporales basada en codificadores automáticos apilados

El algoritmo de filtrado de Kalman extendido iterativo adaptativo (AIEK) es un algoritmo de filtrado cuyo propósito es adaptarse gradualmente a diferentes estados y entornos a través de un proceso iterativo, optimizando así el efecto de filtrado.

La idea básica de este algoritmo es ajustar de forma adaptativa los parámetros del filtro de acuerdo con los datos observados y la ecuación de estado durante cada proceso de iteración para adaptarse mejor a la distribución de los datos reales. Específicamente, el algoritmo incluye los siguientes pasos:

Inicialización: primero, establezca un valor inicial para los parámetros iniciales del filtro, que incluyen la matriz de transición de estado, la matriz de medición, la covarianza del ruido del proceso y la covarianza del ruido de medición, etc.
Predicción: prediga el siguiente estado en función de la ecuación de estado actual y los parámetros de filtrado, y calcule el error de predicción.
Corrección: según los resultados de la predicción y los datos de observación reales, la predicción se corrige para que se ajuste mejor a la distribución de los datos reales.
Actualización de parámetros: según los resultados de la corrección, los parámetros del filtro se ajustan de forma adaptativa para adaptarse mejor a los datos en el siguiente proceso de iteración.
El algoritmo es autoadaptativo e iterativo y puede adaptarse gradualmente a diferentes estados y entornos, optimizando así el efecto de filtrado. En aplicaciones prácticas, se pueden seleccionar diferentes métodos de ajuste de parámetros de filtro y estrategias de iteración de acuerdo con problemas específicos para obtener mejores efectos de filtrado.

Borrar variables de entorno

warning off             % 关闭报警信息
close all               % 关闭开启的图窗
clear                   % 清空变量
clc                     % 清空命令行

Importar datos (procesamiento de ventana deslizante de 20 pasos)

x_train = xlsread('P_x_train.xlsx','B2:U5043');
y_train = xlsread('P_y_train.xlsx','B1:B5042');
x_test = xlsread('P_x_test.xlsx','B2:U1720');
y_test = xlsread('P_y_test.xlsx','B1:B1719');

Normalización de datos

[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);

transponer para ajustar el modelo

p_train = p_train'; p_test = p_test';
t_train = t_train'; t_test = t_test';

Construya redes neuronales profundas

hidden   = [f_, 50, 50];                     % 自动编码器的隐藏层节点个数[50, 50]
sae_lr   = 0.5;                              % 自动编码器的学习率
sae_mark = 0;                                % 自动编码器的噪声覆盖率(不为零时,为堆叠去噪自动编码器)
sae_act  = 'sigm';                           % 自动编码器的激活函数

opts.numepochs = 500;                        % 自动编码器的最大训练次数
opts.batchsize = M / 2;                      % 每次训练样本个数 需满足:(M / batchsize = 整数)

%%  建立堆叠自编码器
sae = saesetup(hidden);

%%  堆叠自动编码器参数设置
for i = 1 : length(hidden) - 1
    sae.ae{
    
    i}.activation_function     = sae_act;    % 激活函数
    sae.ae{
    
    i}.learningRate            = sae_lr;     % 学习率
    sae.ae{
    
    i}.inputZeroMaskedFraction = sae_mark;   % 噪声覆盖率
end

%%  训练堆叠自动编码器
sae = saetrain(sae, p_train, opts);

%%  建立深层神经网络
nn = nnsetup([hidden, outdim]);

Cálculo de indicadores relevantes.

%  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)])

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

Insertar descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/m0_37702416/article/details/132795969
Recomendado
Clasificación