%
% Copyright (c) 2015, Yarpiz (www.yarpiz.com)
% All rights reserved. Please read the "license.txt" for license terms.
%
% Project Code: YPML113
% Project Title: Implementation of Group Method of Data Handling in MATLAB
% Publisher: Yarpiz (www.yarpiz.com)
%
% Developer: S. Mostapha Kalami Heris (Member of Yarpiz Team)
%
% Contact Info: sm.kalami@gmail.com, info@yarpiz.com
%
function gmdh = GMDH(params, X, Y)
disp('Training GMDH:');
MaxLayerNeurons = params.MaxLayerNeurons;
MaxLayers = params.MaxLayers;
alpha = params.alpha;
nData = size(X,2);
% Shuffle Data
Permutation = randperm(nData);
X = X(:,Permutation);
Y = Y(:,Permutation);
% Divide Data
pTrainData = params.pTrain;
nTrainData = round(pTrainData*nData);
X1 = X(:,1:nTrainData);
Y1 = Y(:,1:nTrainData);
pTestData = 1-pTrainData;
nTestData = nData - nTrainData;
X2 = X(:,nTrainData+1:end);
Y2 = Y(:,nTrainData+1:end);
Layers = cell(MaxLayers, 1);
Z1 = X1;
Z2 = X2;
for l = 1:MaxLayers
L = GetPolynomialLayer(Z1, Y1, Z2, Y2);
if l>1
if L(1).RMSE2 > Layers{l-1}(1).RMSE2
break;
end
end
ec = alpha*L(1).RMSE2 + (1-alpha)*L(end).RMSE2;
ec = max(ec, L(1).RMSE2);
L = L([L.RMSE2] <= ec);
if numel(L) > MaxLayerNeurons
L = L(1:MaxLayerNeurons);
end
if l==MaxLayers && numel(L)>1
L = L(1);
end
Layers{l} = L;
Z1 = reshape([L.Y1hat],nTrainData,[])';
Z2 = reshape([L.Y2hat],nTestData,[])';
disp(['Layer ' num2str(l) ': Neurons = ' num2str(numel(L)) ', Min Error = ' num2str(L(1).RMSE2)]);
if numel(L)==1
break;
end
end
Layers = Layers(1:l);
gmdh.Layers = Layers;
disp(' ');
end
没有合适的资源?快使用搜索试试~ 我知道了~
数据处理分组法 (GMDH) 在 MATLAB 中的实现
共7个文件
m:6个
mat:1个
2 下载量 193 浏览量
2023-12-27
09:57:58
上传
评论
收藏 13KB RAR 举报
温馨提示
使用现有的工具包:MATLAB提供了许多优秀的工具包和函数,其中一些可能包含了GMDH算法的实现。您可以搜索MATLAB的工具箱或者第三方工具包,看是否有现成的GMDH算法可供使用。如果找到了合适的工具包,您可以按照相应的文档和示例来使用其中的函数来实现GMDH。 自己编写代码:如果没有现成的工具包可用,您也可以自己编写MATLAB代码来实现GMDH算法。以下是一个简单的步骤来实现GMDH算法: 数据准备:将您的数据导入MATLAB,并做好必要的预处理工作,如归一化、标准化等。 建立模型结构:根据GMDH算法的原理,需要逐步建立模型结构,逐层进行特征选择和模型训练。您可以使用MATLAB中的矩阵运算和循环结构来逐步构建模型。 特征选择:在每一层,使用适当的特征选择方法,如逐步回归、信息增益等,来选择最重要的特征。 模型训练:对于每一层选定的特征,训练相应的模型,如线性回归模型、多项式回归模型等。 模型评估:使用交叉验证等方法来评估模型的性能,并选择最佳的模型结构。 模型集成:将各个层级得到的模型进行集成,得到最终的GMDH模型。
资源推荐
资源详情
资源评论
收起资源包目录
GMDH.rar (7个子文件)
GMDH
ApplyGMDH.m 802B
PlotResults.m 1KB
main.m 2KB
FitPolynomial.m 1KB
GMDH.m 2KB
GetPolynomialLayer.m 868B
chemical_data_file.mat 10KB
共 7 条
- 1
资源评论
嵌入式职场
- 粉丝: 4w+
- 资源: 44
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功