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