📄 pca_rbf.m
字号:
%RBF Neural Network
%A radial basis network is a network with two layers.
%A hidden layer of radial basis neurons and an output layer of linear neurons.
clear;
load alu.txt;
P=alu(:,1:14);
T1=alu(:,15);
X=P;
Y=T1;
%load yhl720.txt;%
%X=yhl720(:,1:21);
%Y=yhl720(:,22);
[mX,nX]=size(X);
[mY,nY]=size(Y);
[Xn,meanX,stdX,Yn,meanY,stdY] = premnmx(X',Y');
nTest=150;
%Xn1=Xn(:,1:(mX-nTest));
%Xn2=Xn(:,(mX-nTest+1):mX);
Yn1=Yn(:,1:(mX-nTest));
Yn2=Yn(:,(mX-nTest+1):mX);
Y1=Y(1:(mX-nTest),:);
Y2=Y((mX-nTest+1):mX,:);
%Preprocess of data
[T,P,W] = pca(Xn',7);
t1=T';
y1=Y';
[tn,mint,maxt,yn,miny,maxy] = premnmx(t1,y1);
tn1=tn(:,1:(mX-nTest));
tn2=tn(:,(mX-nTest+1):mX);
yn1=yn(:,1:(mX-nTest));
yn2=yn(:,(mX-nTest+1):mX);
[S2,Q] = size(T');
%minmax returns the Rx2 matrix of minimum and maximum values for each
%row of M.
%Network Training
eg = 0.8; % Sum-squared error goal
sc = 0.75; % Spread constant
net = newrb(tn1,yn1,eg,sc);
%simulate the network:
Ybn1 = sim(net,tn1);
Yb1 = postmnmx(Ybn1,miny,maxy);
Ybn2 = sim(net,tn2);
Yb2 = postmnmx(Ybn2,miny,maxy);
disp('fitting Error is:');
Err_Bp1=sqrt(sumsqr(Y1'-Yb1)/(size(Yn1,2)));
%Err_Bp1=sumsqr(Y1'-Yb1)/(size(Yn1,2));
disp(Err_Bp1);
e1=Y1'-Yb1;
e1=abs(e1);
er1=e1./Y1';
er1=sum(er1)/(size(er1,2));
disp(er1);
er3=sum(e1)/(size(e1,2));
disp(er3);
disp('testing Error is:');
Err_Bp2=sqrt(sumsqr(Y2'-Yb2)/(size(Yn2,2)));
%Err_Bp2=sumsqr(Y2'-Yb2)/(size(Yn2,2));
disp(Err_Bp2);
e2=Y2'-Yb2;
e2=abs(e2);
er2=e2./Y2';
er2=sum(er2)/(size(er2,2));
disp(er2);
er4=sum(e2)/(size(e2,2));
disp(er4);
figure(2);
ct=1:1:(mX-nTest);
plot(ct,Y1,'b:',ct,Yb1,'r-');
legend('Analysis value','PCA-RBF output');
xlabel('Sample No');
ylabel('Value');
%Network Testing
figure(3);
ct=(mX-nTest+1):1:Q;
plot(ct,Y2,'b:',ct,Yb2,'r-');
legend('Analysis value','PCA-RBF output');
xlabel('Sample No');
ylabel('Value');
figure(4);%画出检验样本的拟合效果图
Yb3=[Yb1 Yb2];
ct=1:1:Q;
plot(ct,Y,'r:',ct,Yb3,'b-');
legend('value desired','PCA-RBF out');
xlabel('sample No.');
ylabel('Value');
%save net.IW, net.b,net.LW RBFw.dat -ascii;
%celldisp(net.IW);%Display IW;
%celldisp(net.LW);%Display LW;
%celldisp(net.b);%Display b;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -