天天看點

matlab rbf神經網絡預測,RBF神經網絡預測,誤差太大,求高人指點。

clear all

clear

clc

%輸入資料

p=[0.4158

0.206

0.4659

0.9319

0.509

0.6038

0.0971

0.21

0.119

0.1207

0.9803

0.4552

0.1228

0.365

0.1178

0.4179

0.2298

0.854

0.6704

0.2277

0.2677

0.2188

0.7725

0.2993];

%輸出資料

t=[0.123910572

0.006252368

0.354679803

0.493937097

0.083933308

0.212201592

0.026335733

0.276051535

0.010989011

0.218832891

0.334975369

0.004736643

0.301818871

0.032967033

0.264494127

0.007578628

0.518378174

0.524820008

0.082038651

0.093596059

0.022546419

0.117279272

0.085449034

0.421371732];

%測試資料

p_test=[0.4192

0.6032

0.6132

1

0.3968

0.8085

0.3844

0.58

0.4411

0.9428];

t_test=[0.144372869

1

0.839333081

0.371163319

0.027283062

0.589048882

0.730390299

0.051345207

0.438992042

0.169192876];

%訓練資料

p=p';

t=t';

%測試資料

p_test=p_test';

t_test=t_test';

net = newrb(p,t,0.01,1);

a = sim(net,p)                           % 測試 - 輸出為預測值

err1 = sum((t-a).^2)                     % 訓練誤差的平方和

%---------------------------------------------------

% 結果作圖

%subplot(1,2,1);

figure(1)

plot(t,'r+:')

hold on

plot(a,'bo:')

title('+為真實值,o為預測值')

title('RBF網絡拟合曲線圖--訓練');

legend('實際值','估計值');

ylabel('樣本輸出');

xlabel('輸入樣本點');

b=sim(net,p_test)

err2=sum((t_test-b).^2)    % 訓練誤差的平方和

%subplot(1,2,2);

figure(2)

plot(t_test,'r+:')

hold on

plot(b,'bo:')

title('+為真實值,o為預測值')

title('RBF網絡拟合曲線圖--測試');

legend('實際值','估計值');

ylabel('樣本輸出');

xlabel('輸入樣本點');

%請問是資料問題,還是我編的程式問題? 剛開始接觸神經網絡,好多地方不懂。 金币有點少。。,但是是我的所有金币了,希望高手賜教。

附圖如下:

matlab rbf神經網絡預測,RBF神經網絡預測,誤差太大,求高人指點。

http://b268.photo.store.qq.com/p ... g8GxqhWnCiy.phJintR*2.z1VQ.YfGcM4.RvOJoY!/b/dA5EyJ9nHwAA&bo=DQKUAQAAAAABAL0!

http://b227.photo.store.qq.com/p ... 70/oOWKyc7AZnkPKoNc*YgF8GEZIE5oKF*wGHJuvxun5QE!/b/dKUMT4cAFgAA&bo=EAKdAQAAAAABAKk!