📄 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 + -