Predicción de series de tiempo | MATLAB implementa la predicción de series de tiempo de red neuronal de memoria a corto plazo y convolución de tiempo bidireccional TCN-BiLSTM

Predicción de series de tiempo | MATLAB implementa la predicción de series de tiempo de red neuronal de memoria a corto plazo y convolución de tiempo bidireccional TCN-BiLSTM

efecto predictivo

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

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

introducción básica

1. MATLAB implementa el pronóstico de series de tiempo de redes neuronales de memoria bidireccional a corto y largo plazo con convolución de tiempo TCN-BiLSTM 2.
El entorno operativo es Matlab2021b
3. Pronóstico de series de tiempo univariadas
4. Los datos son un conjunto de datos, datos de Excel, MainTCN_BiLSTMTS.m es el principal Simplemente ejecute el programa y coloque todos los archivos en una carpeta
5. La ventana de comando genera una evaluación de índices múltiples RMSE, MAE, MAPE.

Descripcion del modelo

Dado que TCN tiene una estructura de convolución causal expandida y tiene excelentes capacidades de extracción de características, las características originales se pueden fusionar para obtener características abstractas de alta dimensión, lo que fortalece la extracción de información de características. La red BiLSTM
tiene una poderosa capacidad de predicción de series de tiempo. Combinando TCN y la red BiLSTM, la extracción de características de TCN se ingresa a la red BiLSTM, lo que mejora la eficiencia de procesamiento de la unidad de memoria de la red BiLSTM y hace que el modelo de predicción aprenda de manera más efectiva. La compleja relación de interacción de las series temporales. Por lo tanto, este artículo construye un modelo de predicción TCN-BiLSTM.

TCN-BiLSTM es un modelo de red neuronal que combina una red neuronal convolucional temporal (TCN) y una red neuronal bidireccional de memoria a corto plazo (BiLSTM). TCN es una red neuronal convolucional capaz de procesar datos de secuencia, que puede capturar dependencias a largo plazo en secuencias. BiLSTM es una red neuronal recurrente con unidades de memoria que pueden manejar dependencias tanto a corto como a largo plazo en datos de secuencia.
La entrada del modelo TCN-BiLSTM puede ser múltiples secuencias, y cada secuencia puede ser una característica o variable diferente. Por ejemplo, si queremos predecir la temperatura promedio de una determinada ciudad para la próxima semana, podemos usar múltiples variables como temperatura, humedad, presión del aire, etc. en el último período de tiempo como secuencia de entrada. El resultado del modelo es un valor, la temperatura promedio en algún momento en el futuro.
En TCN-BiLSTM, las capas convolucionales temporales se utilizan para capturar dependencias a largo plazo en secuencias, y las capas BiLSTM se utilizan para manejar dependencias a corto y largo plazo en secuencias. Se fusionan múltiples secuencias de entrada en un tensor, que luego se introduce en la red TCN-BiLSTM para su entrenamiento. Durante el entrenamiento, el objetivo de optimización del modelo es minimizar la brecha entre el resultado previsto y el valor real.
El modelo TCN-BiLSTM funciona bien en problemas de regresión y pronóstico de series temporales, especialmente para datos de secuencia dependientes a largo plazo. Se puede utilizar en muchos escenarios de aplicaciones, como predicción del precio de las acciones, predicción del flujo de tráfico, etc.

programación

  • Código fuente completo y método de adquisición de datos: los blogueros de cartas privadas responden a MATLAB para realizar la predicción de series de tiempo de redes neuronales de memoria bidireccional a corto y largo plazo convolución temporal TCN-BiLSTM ;
%% 预测
t_sim1 = predict(net, p_train); 
t_sim2 = predict(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);


%%  相关指标计算

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

%% 平均绝对百分比误差MAPE
MAPE1 = mean(abs((T_train - T_sim1')./T_train));
MAPE2 = mean(abs((T_test - T_sim2')./T_test));

disp(['训练集数据的MAPE为:', num2str(MAPE1)])
disp(['测试集数据的MAPE为:', num2str(MAPE2)])

%  MBE
mbe1 = sum(abs(T_sim1' - T_train)) ./ M ;
mbe2 = sum(abs(T_sim1' - T_train)) ./ N ;

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

%均方误差 MSE
mse1 = sum((T_sim1' - T_train).^2)./M;
mse2 = sum((T_sim2' - T_test).^2)./N;

disp(['训练集数据的MSE为:', num2str(mse1)])
disp(['测试集数据的MSE为:', num2str(mse2)])

Referencias

[1] https://blog.csdn.net/kjm13182345320/article/details/128577926?pm=1001.2014.3001.5501
[2] https://blog.csdn.net/kjm131823453320/details = 1001.2014 .3001.5501

Supongo que te gusta

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