clc;
clear;
close all;
%% Input
load fisheriris.mat;
Input=reshape(meas,1,[]); % Preprocessing - convert matrix to vector
Target(1:50)=1;Target(51:100)=2;Target(101:150)=3;Target=Target'; % Original labels
classes= 3;
% More value of "Variation" means more synthetic data.
Variation = 6;
for i=1:Variation
Delays = [1 2 3 4];
[Inputs, Targets] = CreateTimeSeriesData(Input,Delays);
nData = size(Inputs,2);
Perm = randperm(nData);
% Create GMDH Network
params.MaxLayerNeurons = 30; % Maximum Number of Neurons in a Layer
params.MaxLayers = 9; % Maximum Number of Layers
params.alpha = 0.3; % Selection Pressure
params.pTrain = 0.9; % Train Ratio
% Train GMDH
gmdh = GMDH(params, Inputs, Targets);
% GMDH Model on Train
Outputs{i} = ApplyGMDH(gmdh, Inputs);
end
% Converting cell to matrix
for i = 1 : Variation
Generated(:,i)=Outputs{i};
end
% Converting matrix to cell
P = size(Input); P = P (1,2);
S = size(Outputs{i});
SO = size (meas);
SF = SO (1,2);
SO = SO (1,1);
SS = S (1,2);
R = SS*SO/P;
for i = 1 : Variation
Generated1{i}=reshape(Generated(:,i),[R,SF]);
end
% Converting cell to matrix (the last time)
Synthetic = cell2mat(Generated1');
% K-means clustering to get the labels
[idx,C] = kmeans(Synthetic,classes);
%% Plot data and classes
Feature1=1;
Feature2=3;
f1=meas(:,Feature1); % feature1
f2=meas(:,Feature2); % feature 2
ff1=Synthetic(:,Feature1); % feature1
ff2=Synthetic(:,Feature2); % feature 2
figure('units','normalized','outerposition',[0 0 1 1])
subplot(2,2,1)
plot(meas, 'linewidth',1); title('Original Data');
ax = gca; ax.FontSize = 12; ax.FontWeight='bold'; grid on;
subplot(2,2,2)
plot(Synthetic, 'linewidth',1); title('Synthetic Data');
ax = gca; ax.FontSize = 12; ax.FontWeight='bold'; grid on;
subplot(2,2,3)
gscatter(f1,f2,Target,'rkgb','.',20); title('Original');
ax = gca; ax.FontSize = 12; ax.FontWeight='bold'; grid on;
subplot(2,2,4)
gscatter(ff1,ff2,idx,'rkgb','.',20); title('Synthetic');
ax = gca; ax.FontSize = 12; ax.FontWeight='bold'; grid on;
%% Train and Test
% Training Synthetic dataset by SVM
Mdlsvm = fitcecoc(Synthetic,idx); CVMdlsvm = crossval(Mdlsvm);
SVMError = kfoldLoss(CVMdlsvm); SVMAccAugTrain = (1 - SVMError)*100;
% Predict new samples (the whole original dataset)
[label5,score5,cost5] = predict(Mdlsvm,meas);
sizlbl=R;
% Test error and accuracy calculations
a=0;b=0;c=0;
for i=1:R
if label5(i)== 1
a=a+1;
elseif label5(i)==2
b=b+1;
else
label5(i)==3
c=c+1;
end;end;
erra=abs(a-50);errb=abs(b-50);errc=abs(c-50);
err=erra+errb+errc;TestErr=err*100/R;SVMAccAugTest=100-TestErr; % Test Accuracy
% Result SVM
AugResSVM = [' Synthetic Train SVM "',num2str(SVMAccAugTrain),'" Synthetic Test SVM"', num2str(SVMAccAugTest),'"'];
disp(AugResSVM);
基于GMDH的数据分组处理方法mtalab仿真【包括程序操作视频】
版权申诉
34 浏览量
2024-02-07
04:54:28
上传
评论
收藏 1.98MB RAR 举报
fpga和matlab
- 粉丝: 15w+
- 资源: 2550
最新资源
- web元件库大全(Axure RP 10)
- 基于matlab实现的粒子群算法优化BP神经网络进行汇率预测.rar
- 基于matlab实现的粒子群算法优化的RBF神经网络进行预测.rar
- 基于matlab实现的粒子群算法与人工鱼群算法的比较,体现了两种算法各自的优缺点.rar
- 基于matlab实现的求解约束优化问题的改进粒子群优化算.rar
- 基于matlab实现的区间比例和粒子群优化算法的模糊时间序列预测.rar
- 20240207_114942.m4a..mp3
- 房贷计算器微信小程序,含运行教程和相关示例截图.rar
- 图书管理系统-maven的setting文件
- 9个数据结构课程设计实例二叉树建立遍历冒泡排序快速排序等.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈