【MATLAB第28期】基于MATLAB的GWO-GMDH时间序列预测模型

简介: 【MATLAB第28期】基于MATLAB的GWO-GMDH时间序列预测模型

【MATLAB第28期】基于MATLAB的GWO-GMDH时间序列预测模型


一、模型简介


GMDH(Group Method of Data Handling,数据处理的群组方法)是一种经典的机器学习算法,它可以用于多输入单输出的预测问题,其主要思想是通过组合多个单元来构建一个多项式模型,并通过逐步加入新的输入变量来不断改进模型的精度和泛化能力。


虽然 GMDH 可以用于预测问题,但它不是一个端到端的神经网络模型。在 GMDH

中,数据处理和特征提取是通过组合不同的单元来完成的,而没有像神经网络那样明确的输入层、隐藏层和输出层。此外,GMDH 的组合过程是通过选择最优的模型来完成的,而不是通过反向传播等优化算法来训练模型。 因此,尽管 GMDH 可以用于多输入单输出的预测问题,但它并不满足端到端神经网络的特征,不能用于更复杂的任务,如图像分类、语音识别等。对于这些任务,需要使用更复杂的神经网络模型,如卷积神经网络(CNN)、循环神经网络(RNN)等。


总之,GMDH 可以作为一种有效的预测算法,但它并不是一个端到端的神经网络模型,不能满足复杂任务的要求。


二、模型思路


  • 通过GWO灰狼群智能算法,优化GMDH模型适应度函数,其中,适应度函数可以选择测试集的RMSE值。超参数可选择MaxLayerNeurons
    一层(Layer)中最大神经元个数、 MaxLayers 最大层数(Layers)和alpha选择压力。


三、代码展示


clc;
clear;
close all;
%% 加载数据
data = load('global_ice_volume');
x = data.x;
Delays = [1 2 3 4 5];%延迟五个值 即滑动窗口值
[Inputs, Targets] = CreateTimeSeriesData(x,Delays);% 创建时间序列数据
nData = size(Inputs,2);%输入样本数量
% Perm = randperm(nData);
Perm = 1:nData;%1:214
% Train Data
pTrain = 0.7;%训练集70%
nTrainData = round(pTrain*nData);%训练集样本个数
TrainInd = Perm(1:nTrainData);%1:150
TrainInputs = Inputs(:,TrainInd);%训练输入
TrainTargets = Targets(:,TrainInd);%训练输出
% Test Data
pTest = 1 - pTrain;%测试集
nTestData = nData - nTrainData;%测试集样本个数
TestInd = Perm(nTrainData+1:end);
TestInputs = Inputs(:,TestInd);%测试输入
TestTargets = Targets(:,TestInd);%测试输出
save data
%% Create and Train GMDH Network
params.MaxLayerNeurons = 25;   % 一层(Layer)中最大神经元个数
params.MaxLayers = 5;          % 最大层数(Layers)
params.alpha = 0;              % 选择压力
params.pTrain = 0.7;           % 训练集比例


四、效果展示


左图为优化后,右图为优化前。

优化后超参数

五、代码获取


后台私信回复“28”可获取下载链接。

相关文章
|
8月前
|
传感器 算法 安全
基于分布式模型预测控制DMPC的单向拓扑结构下异构车辆车队研究(Matlab代码实现)
基于分布式模型预测控制DMPC的单向拓扑结构下异构车辆车队研究(Matlab代码实现)
281 4
|
8月前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
514 2
|
8月前
|
传感器 机器学习/深度学习 编解码
【电缆】中压电缆局部放电的传输模型研究(Matlab代码实现)
【电缆】中压电缆局部放电的传输模型研究(Matlab代码实现)
236 3
|
8月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于WOA鲸鱼优化的XGBoost序列预测算法matlab仿真
基于WOA优化XGBoost的序列预测算法,利用鲸鱼优化算法自动寻优超参数,提升预测精度。结合MATLAB实现,适用于金融、气象等领域,具有较强非线性拟合能力,实验结果表明该方法显著优于传统模型。(238字)
|
8月前
|
机器学习/深度学习 数据采集 算法
基于VMD-CPA-KELM-IOWAl-CSA-LSSVM碳排放的混合预测模型研究(Matlab代码实现)
基于VMD-CPA-KELM-IOWAl-CSA-LSSVM碳排放的混合预测模型研究(Matlab代码实现)
238 5
|
8月前
|
传感器 资源调度 算法
基于无迹卡尔曼滤波(UKF)与模型预测控制(MPC)的多无人机避撞研究(Matlab代码实现)
基于无迹卡尔曼滤波(UKF)与模型预测控制(MPC)的多无人机避撞研究(Matlab代码实现)
393 1
|
8月前
|
机器学习/深度学习 数据采集 并行计算
基于DTW(动态弯曲距离)-Kmeans的时间序列聚类分析模型(Matlab代码实现)
基于DTW(动态弯曲距离)-Kmeans的时间序列聚类分析模型(Matlab代码实现)
699 1
|
8月前
|
机器学习/深度学习 数据采集 传感器
【WOA-CNN-LSTM】基于鲸鱼算法优化深度学习预测模型的超参数研究(Matlab代码实现)
【WOA-CNN-LSTM】基于鲸鱼算法优化深度学习预测模型的超参数研究(Matlab代码实现)
493 0
|
8月前
|
算法 大数据 调度
【复现】【充换电站】考虑用户充电负荷-最优分时电价互动的光储充换电站优化模型研究(Matlab代码实现)
【复现】【充换电站】考虑用户充电负荷-最优分时电价互动的光储充换电站优化模型研究(Matlab代码实现)
275 0
|
7月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
640 0

热门文章

最新文章