Predicción de regresión | MATLAB implementa la predicción de regresión de salida única de entrada múltiple de unidad recurrente controlada por convolución de tiempo TCN-GRU

Predicción de regresión | MATLAB implementa la convolución de tiempo TCN-LSTM predicción de regresión de salida única de entrada múltiple de red neuronal de memoria a largo plazo

efecto predictivo

1

2
3

4
5
6

introducción básica

1. Matlab implementa la predicción de regresión de una sola salida y entrada múltiple de la unidad de ciclo cerrado de convolución de tiempo TCN-GRU;
2. El entorno operativo es Matlab2021b;
3. Ingresa múltiples funciones, genera una sola variable y predicción de regresión multivariante; 4.
Los datos son un conjunto de datos, datos de Excel, se ingresan las primeras 7 columnas y se genera la última columna. MainTCN_GRUNN. El modelo extrae los datos pasados ​​a través de una convolución causal unidimensional para garantizar la sincronización , la conexión residual acelera la velocidad de convergencia y la convolución dilatada realiza la extracción de características de temporización . Como una variante de la red neuronal cíclica, el modelo GRU tiene capacidades de ajuste no lineal, puede extraer características de datos de manera efectiva y obtener una velocidad de convergencia más rápida al tiempo que garantiza resultados de predicción similares a LSTM. En este documento, los dos se combinan para construir el modelo TCN-GRU.


Descripcion del modelo

Dado que TCN tiene una estructura de convolución causal expandida y tiene capacidades sobresalientes 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 GRU
tiene una poderosa capacidad de predicción de series temporales. Combinando el TCN y la red GRU, la extracción de características del TCN se ingresa a la red GRU, lo que mejora la eficiencia de procesamiento de la unidad de memoria de la red GRU y hace que el modelo de predicción sea más efectivo para aprender la compleja interacción de las series temporales
. Por lo tanto, este artículo construye un modelo de predicción TCN-GRU.

7

TCN-GRU es un modelo de red neuronal que combina una red neuronal convolucional temporal (TCN) y una unidad recurrente cerrada (GRU). TCN es una red neuronal convolucional capaz de procesar datos de secuencias, que pueden capturar dependencias a largo plazo en secuencias. GRU 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-GRU 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 la temperatura, la humedad, la presión del aire, etc. en el último período de tiempo como secuencia de entrada. La salida del modelo es un valor, la temperatura promedio en algún momento en el futuro.
En TCN-GRU, las capas convolucionales temporales se usan para capturar dependencias a largo plazo en secuencias, y las capas GRU se usan para manejar dependencias a corto y largo plazo en secuencias. Varias secuencias de entrada se fusionan en un tensor, que luego se alimenta a la red TCN-GRU para el entrenamiento. Durante el entrenamiento, el objetivo de optimización del modelo es minimizar la brecha entre el resultado previsto y el valor real.
Los modelos TCN-GRU funcionan bien en problemas de regresión y pronóstico de series de tiempo, especialmente para datos de secuencias dependientes a largo plazo. Se puede utilizar en muchos escenarios de aplicación, como la predicción del precio de las acciones, la predicción del flujo de tráfico, etc.

programación

%% 预测
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?spm=1001.2014.3001.5501
.3001.5501

Supongo que te gusta

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