?? rbf.m
字號:
clc
clear
close all
load input;
%---------------------------------------------------
load input;
T=input(101:150,5);
%數(shù)據(jù)歸一化處理
[g_data,mx,stdx]=autosc(input);
%標(biāo)準(zhǔn)化處理
Xmax=max(g_data);
Xmin=min(g_data);
el=ones(150,1);e2=ones(150,5);
%標(biāo)準(zhǔn)化后的數(shù)據(jù)集g_data[]
g_data=e2-(el*Xmax-g_data)./(el*(Xmax-Xmin));
xi=g_data(1:100,1:4);
yi=g_data(1:100,5);
%測試樣本
Xt=g_data(101:150,1:4);
Yt=g_data(101:150,5);
%---------------------------------------------------
% 訓(xùn)練
switch 2
case 1
% 神經(jīng)元數(shù)是訓(xùn)練樣本個數(shù)
spread = 0.1; % 此值越大,覆蓋的函數(shù)值就大(默認(rèn)為1)
net = newrbe(xi,yi,spread);
case 2
% 神經(jīng)元數(shù)逐步增加,最多就是訓(xùn)練樣本個數(shù)
goal = 1e-10; % 訓(xùn)練誤差的平方和(默認(rèn)為0)
spread = 0.1; % 此值越大,需要的神經(jīng)元就越少(默認(rèn)為1)
MN =100 %size(PN1,2); % 最大神經(jīng)元數(shù)(默認(rèn)為訓(xùn)練樣本個數(shù))
DF = 1; % 顯示間隔(默認(rèn)為25)
net = newrb(xi',yi',goal,spread,MN,DF);
case 3
spread = 0.1; % 此值越大,需要的神經(jīng)元就越少(默認(rèn)為1)
net = newgrnn(xi,yi,spread);
end
%---------------------------------------------------
% 測試
YN1 = sim(net,xi); % 訓(xùn)練樣本實(shí)際輸出
Yd = sim(net,Xt); % 測試樣本實(shí)際輸出
%反歸一化
Yd=Yd.*(ones(50,1)*(Xmax(1,5)-Xmin(1,5)))+ones(50,1)*Xmin(1,5);
Yd=rescal(Yd,mx(1,5),stdx(1,5));
%MSE1 = mean((TN1-YN1).^2) % 訓(xùn)練均方誤差
%MSE2 = mean((TN2-YN2).^2) % 測試均方誤差
%---------------------------------------------------
%---------------------------------------------------
% 結(jié)果作圖
plot(1:length(T2),T2,'r+:',1:length(Y2),Y2,'bo:')
title('+為真實(shí)值,o為預(yù)測值')
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -