?? neuralnetwork_rbf_classifications.m
字號:
% RBF 神經網絡用于函數擬合
% 使用平臺 - Matlab6.5
%clc
clear
close all
%---------------------------------------------------
% 產生訓練樣本與測試樣本
P1 = 1:2:200; % 訓練樣本,每一列為一個樣本
T1 = sin(P1*0.1); % 訓練目標
P2 = 2:2:200; % 測試樣本,每一列為一個樣本
T2 = sin(P2*0.1); % 測試目標
%---------------------------------------------------
% 歸一化
[PN1,minp,maxp,TN1,mint,maxt] = premnmx(P1,T1);
PN2 = tramnmx(P2,minp,maxp);
TN2 = tramnmx(T2,mint,maxt);
%---------------------------------------------------
% 訓練
switch 2
case 1
% 神經元數是訓練樣本個數
spread = 0.1; % 此值越大,覆蓋的函數值就大(默認為1)
net = newrbe(PN1,TN1,spread);
case 2
% 神經元數逐步增加,最多就是訓練樣本個數
goal = 1e-10; % 訓練誤差的平方和(默認為0)
spread = 0.1; % 此值越大,需要的神經元就越少(默認為1)
MN = size(PN1,2); % 最大神經元數(默認為訓練樣本個數)
DF = 1; % 顯示間隔(默認為25)
net = newrb(PN1,TN1,goal,spread,MN,DF);
case 3
spread = 0.1; % 此值越大,需要的神經元就越少(默認為1)
net = newgrnn(PN1,TN1,spread);
end
%---------------------------------------------------
% 測試
YN1 = sim(net,PN1); % 訓練樣本實際輸出
YN2 = sim(net,PN2); % 測試樣本實際輸出
MSE1 = mean((TN1-YN1).^2) % 訓練均方誤差
MSE2 = mean((TN2-YN2).^2) % 測試均方誤差
%---------------------------------------------------
% 反歸一化
Y2 = postmnmx(YN2,mint,maxt);
%---------------------------------------------------
% 結果作圖
plot(1:length(T2),T2,'r+:',1:length(Y2),Y2,'bo:')
title('+為真實值,o為預測值')
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -