clc;
clear;
close all;
warning off;
load data1.mat
%%
%选择100个数据作为输入
Data = data1(1:100);
%%
%选择20个训练数据
t11 = 1:10;
Train_data1 = Data(1:10);
t12 = 1:10;
spread = 1;
goal = 0.01;
df = 1;
mn = length(t11);
net = newrb(t11,Train_data1,goal,spread,mn,df);
yc1 = sim(net,t12);
%%
%选择70个训练数据
t21 = 1:60;
Train_data2 = Data(1:60);
t22 = 1:60;
spread = 1;
goal = 0.01;
df = 1;
mn = length(t21);
net = newrb(t22,Train_data2,goal,spread,mn,df);
yc2 = sim(net,t22);
figure;
plot(t21,Train_data2,'b-o');
hold on;
plot(t22,yc2,'r-*');
hold off;
grid on;
%%
%%对比计算结果
mser11 = func_mse(Train_data1);
mser12 = func_mse(yc1);
sder1 = func_sd(yc1);
sdrer1 = func_sdr(yc1,Train_data1);
coeff1 = func_pcc(yc1,Train_data1);
fprintf('Inputs Train data points MSE training MSE testing PCC SDR SD\n');
fprintf('-----------------------------------------------------------------------------------------------\n');
fprintf('100 20 ');
fprintf('%2.6f ',mser11);
fprintf('%2.6f ',mser12);
fprintf('%2.6f ',coeff1);
fprintf('%2.6f ',sdrer1);
fprintf('%2.6f ',sder1);
fprintf('\n');
fprintf('-----------------------------------------------------------------------------------------------\n');
mser21 = func_mse(Train_data2);
mser22 = func_mse(yc2);
sder2 = func_sd(yc2);
sdrer2 = func_sdr(yc2,Train_data2);
coeff2 = func_pcc(yc2,Train_data2);
fprintf('100 70 ');
fprintf('%2.6f ',mser21);
fprintf('%2.6f ',mser22);
fprintf('%2.6f ',coeff2);
fprintf('%2.6f ',sdrer2);
fprintf('%2.6f ',sder2);
fprintf('\n');
fprintf('-----------------------------------------------------------------------------------------------\n');
%%
%下面的程序是画图
cnt = 0;
for i = 10:2:60
i
cnt = cnt + 1;
t01 = 1:i;
Train_data0 = Data(1:i);
t02 = 1:i;
spread = 1;
goal = 0.01;
df = 1;
mn = length(t01);
net = newrb(t02,Train_data0,goal,spread,mn,df);
yc0 = sim(net,t02);
%%
%%对比计算结果
mser01(cnt) = func_mse(Train_data0);
mser02(cnt) = func_mse(yc0);
sder0(cnt) = func_sd(yc0);
sdrer0(cnt) = func_sdr(yc0,Train_data0);
end
figure;
plot(10:2:60,mser01,'b-o');hold on;
plot(10:2:60,mser02,'r-^');hold on;
plot(10:2:60,sder0,'k-o');hold on;
plot(10:2:60,sdrer0,'m-*');hold on;
grid on;
legend('MSER1','MSER2','SD','SDR');
xlabel('training increasing');
ylabel('error value');