Clear Filters
Clear Filters

About the value of spread of GRNN

3 views (last 30 days)
huan tu
huan tu on 10 Aug 2013
Hi, everyone! I encountered some problem when using GRNN in neural network tool box. Spread is the only variable need to be determined in GRNN. I have tried different values for spread, the curve fitting capability for training data is good, but the interpolation for regions where training data is unavailiable is very poor. How can I improve the interpolation capability by using GRNN? Thanks!
  2 Comments
Greg Heath
Greg Heath on 10 Aug 2013
Not enough information:
size(input)?
size(target)?
How are input and target scaled?
What range of spread did you use?
huan tu
huan tu on 11 Aug 2013
clc,clear
% samples
data=[ 550 50.9114 4.9195
550 53.9864 4.8926
550 56.3262 4.8658
550 58.5372 4.5436
550 59.9610 3.3356
500 42.2350 4.1678
500 47.3824 4.1141
500 49.3885 4.0604
500 52.0637 3.9597
500 54.0059 3.7248
500 54.6201 2.9664
475 38.7662 3.7584
475 43.1781 3.7248
475 45.1173 3.6711
475 47.5921 3.5638
475 50.0018 3.3557
475 50.6136 2.7383
450 34.8298 3.3423
450 37.0355 3.3356
450 40.7792 3.2886
450 43.9895 3.1678
450 45.7969 3.0000
450 46.3401 2.4899
400 28.0909 2.6476
400 31.3660 2.6376
400 33.3715 2.6107
400 35.9125 2.5436
400 37.9872 2.3826
400 38.5303 1.8792
350 19.5438 2.1477
350 24.2224 2.1544
350 27.0301 2.1208
350 29.2368 2.0604
350 31.1102 1.9463
350 31.7844 1.5973
300 14.3362 1.8054
300 19.3493 1.7852
300 21.4217 1.7651
300 23.4944 1.7181
300 25.2336 1.6376
300 26.5071 1.4228 ];
data=[data(:,1) data(:,3) data(:,2)];
p=data(:,[1 3])';
t=data(:,2)';
% interpolation validation
data1= [525.0000 46.3723
525.0000 50.6499
525.0000 52.6551
525.0000 53.6585
525.0000 54.0599
525.0000 55.1983
525.0000 56.7400
525.0000 57.6911];
dataInterp=data1';
[normInput,ps]=mapminmax(p);
[normTarget,ts]=mapminmax(t);
normInterp=mapminmax('apply',dataInterp,ps);
spread=0.01;
net=newgrnn(normInput,normTarget,spread);
normTrainOutput=sim(net,normInput);
normInterpOutput=sim(net,normInterp);
TrainOutput=mapminmax('reverse',normTrainOutput,ts);
InterpOutput=mapminmax('reverse',normInterpOutput,ts);
figure(1)
% plot predictions at samples
plot(p(2,:),TrainOutput,'o',...
p(2,:),t,'r*',...
dataInterp(2,:),InterpOutput,'o')
hold on
% plot interpolation
plot(dataInterp(2,:),InterpOutput,'o')
refInterp=[525.0000 4.5638 46.3723
525.0000 4.5705 50.6499
525.0000 4.5638 52.6551
525.0000 4.5168 53.6585
525.0000 4.4899 54.0599
525.0000 4.3624 55.1983
525.0000 4.1007 56.7400
525.0000 3.1812 57.6911]';
plot(refInterp(3,:),refInterp(2,:),'rd','MarkerFaceColor','r')

Sign in to comment.

Accepted Answer

Greg Heath
Greg Heath on 10 Aug 2013
See my previous answer.
Thank you for formally accepting my answer

More Answers (0)

Categories

Find more on Deep Learning Toolbox in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!