回归预测 | MATLAB实现PCA-GRU主成分门控循环单元多输入单输出回归预测

回归预测 | MATLAB实现PCA-GRU主成分门控循环单元多输入单输出回归预测

目录

    • 回归预测 | MATLAB实现PCA-GRU主成分门控循环单元多输入单输出回归预测
      • 基本介绍
      • 模型描述
      • 预测效果
      • 程序设计
      • 参考资料

基本介绍

本次运行测试环境MATLAB2020b;

  • 本次预测基本任务是回归,考虑了数据的行和列的特征提取,实现PCA-GRU主成分门控循环单元多输入单输出回归预测。

模型描述

将城市路网中各站点的短时交通流量作为初始变量,通过主成分分析法筛选与预测断面有关的站点,在保证预测结果精度的同时,简化了网络结构,提高了运算效率。设m 为检测的短时交通量样本总数,n 为路网中预测断面附近的站点数,k 为筛选后的站点数,X 为原始交通量特征因子矩阵,S 为原始矩阵的协方差矩阵,Z 为筛选后的交通量特征因子矩阵,主成分分析法计算过程分为以下5 个步骤:

  1. 整理原始矩阵Xm×n;
  2. 计算原始矩阵的协方差矩阵Sm×n =COV( X) ;
  3. 求解协方差矩阵的特征值和特征向量;
  4. 选取给定k 个特征值所对应的特征向量所构成的矩阵Wn×k;
  5. 计算筛选后的特征因子矩阵Zm×k =Xm×nWn×k。

LSTM 通过门控机制使循环神经网络不仅能记忆过去的信息,同时还能选择性地忘记一些不重要的信息而对长期语境等关系进行建模,而 GRU 基于这样的想法在保留长期序列信息下减少梯度消失问题。GRU 有两个有两个门,即一个重置门(reset gate)和一个更新门(update gate)。从直观上来说,重置门决定了如何将新的输入信息与前面的记忆相结合,更新门定义了前面记忆保存到当前时间步的量。如果我们将重置门设置为 1,更新门设置为 0,那么我们将再次获得标准 RNN 模型。使用门控机制学习长期依赖关系的基本思想和 LSTM 一致,但还是有一些关键区别:

  • GRU 有两个门(重置门与更新门),而 LSTM 有三个门(输入门、遗忘门和输出门)。
  • GRU 并不会控制并保留内部记忆(c_t),且没有 LSTM 中的输出门。LSTM 中的输入与遗忘门对应于 GRU 的更新门,重置门直接作用于前面的隐藏状态。
    在计算输出时并不应用二阶非线性。

回归预测 | MATLAB实现PCA-GRU主成分门控循环单元多输入单输出回归预测_第1张图片

预测效果

回归预测 | MATLAB实现PCA-GRU主成分门控循环单元多输入单输出回归预测_第2张图片
回归预测 | MATLAB实现PCA-GRU主成分门控循环单元多输入单输出回归预测_第3张图片
回归预测 | MATLAB实现PCA-GRU主成分门控循环单元多输入单输出回归预测_第4张图片
回归预测 | MATLAB实现PCA-GRU主成分门控循环单元多输入单输出回归预测_第5张图片
回归预测 | MATLAB实现PCA-GRU主成分门控循环单元多输入单输出回归预测_第6张图片

程序设计

  • 完整源码和数据私信博主。
% 计算相关系数矩阵
covArr=cov(stdarr);
%% 相关系数矩阵进行主成分分析
[pc1,latent,explain]=pcacov(covArr);
d=repmat(sign(sum(pc1)),size(pc1,1),1);
pc=pc1.*d;
sumcontr=0;
i=1;
% 选取贡献率大于90%的主成分
er=90;
while sumcontr<er
    sumcontr=sumcontr+explain(i);
    i=i+1;
end
————————————————
版权声明:本文为CSDN博主「机器学习之心」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接https://blog.csdn.net/kjm13182345320/article/details/120621147
%优化算法、训练次数、梯度阈值、运行环境、学习率、学习计划
opts = trainingOptions('adam', ...
    'MaxEpochs',800, ...
    'MiniBatchSize',48,...
    'GradientThreshold',1,...
    'ExecutionEnvironment','gpu',...
    'InitialLearnRate',0.005, ...
    'LearnRateSchedule','piecewise', ...
    'LearnRateDropPeriod',100, ...              
    'LearnRateDropFactor',0.8, ...
    'Verbose',0, ...
    'Plots','training-progress'... 
    );
————————————————
版权声明:本文为CSDN博主「机器学习之心」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/kjm13182345320/article/details/120621147

参考资料

[1] https://blog.csdn.net/article/details/120621147
[2] https://blog.csdn.net/article/details/120406657
[3] https://blog.csdn.net/article/details/120636337

你可能感兴趣的