💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
GMDH(Group Method of Data Handling)是一种基于数据驱动的建模方法,可以用于时间序列预测。
具体地,利用GMDH进行时间序列预测需要进行以下步骤:
1. 数据预处理:对于时间序列数据,需要进行平稳性检验以及趋势、季节性分析等预处理步骤。
2. 数据划分:将时间序列数据划分为训练集和测试集。
3. 模型构建:采用GMDH算法,通过数据的组合与迭代进行模型构建,以确定最佳的输入变量及其权重。GMDH算法根据数据本身的分布情况,对数据进行反复的分组处理,并不断增加或减少模型的自由度,从而确定最佳的模型结构。
4. 模型评估:采用测试集对构建好的模型进行评估,一般采用均方根误差(RMSE)、平均绝对误差(MAE)等指标来评价模型的性能。
5. 模型应用:利用构建好的模型对未来的实际值进行预测。
需要注意的是,在时间序列预测中,样本之间具有时间上的依赖性,因此需要进行特殊的建模和验证方式。
📚2 运行结果




部分代码:
%% Load Data
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;
% Train Data
pTrain = 0.7;
nTrainData = round(pTrain*nData);
TrainInd = Perm(1:nTrainData);
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);
%% Create and Train GMDH Network
params.MaxLayerNeurons = 25; % Maximum Number of Neurons in a Layer
params.MaxLayers = 5; % Maximum Number of Layers
params.alpha = 0; % Selection Pressure
params.pTrain = 0.7; % Train Ratio
gmdh = GMDH(params, TrainInputs, TrainTargets);
%% Evaluate GMDH Network
Outputs = ApplyGMDH(gmdh, Inputs);
TrainOutputs = Outputs(:,TrainInd);
TestOutputs = Outputs(:,TestInd);
%% Show Results
figure;
PlotResults(TrainTargets, TrainOutputs, 'Train Data');
🎉3 参考文献
文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。
[1]陈苍.基于GMDH的金融时间序列预测研究[J]. 2021.DOI:10.12229/j.issn.1672-5719.2021.27.106.
[2]肖进,孙海燕,刘敦虎,等.基于GMDH混合模型的能源消费量预测研究[J].中国管理科学, 2017(12):9.DOI:10.16381/j.cnki.issn1003-207x.2017.12.017.
[3]邹昊飞,夏国平,杨涵.基于GMDH的BP组合预测模型[C]//中国控制与决策学术年会.2006.DOI:ConferenceArticle/5aa3017fc095d72220ad2caf.
本文介绍了GMDH(GroupMethodofDataHandling)在时间序列预测中的应用,包括数据预处理、模型构建步骤、评估指标如RMSE和MAE,以及使用Matlab实现的代码示例。

173

被折叠的 条评论
为什么被折叠?



