%% I. 清空环境变量
clc
clear
close all
%% II. 训练集/测试集产生
%%
load maydata.mat
num(15,61)=13285;
m=45;
n = randperm(length(num));
input_train=num(n,1:60)';%训练数据的输入数据
output_train=num(n,61)';%训练数据的输出数据
input_test=num((m+1:end),1:60)';%测试数据的输入数据
output_test=num((m+1:end),61)'; %测试数据的输出数据
%选连样本输入输出数据归一化
[inputn_test,inputps]=mapminmax(input_test,-1,1);%训练数据的输入数据的归一化
% [inputn,inputps]=mapminmax(input_train,0,1);%训练数据的输入数据的归一化
% inputn_test=mapminmax('apply',input_test,inputps);
inputn=mapminmax('apply',input_train,inputps);
[outputn,outputps]=mapminmax(output_train,0,1);%训练数据的输出数据的归一化de
%% III. RBF神经网络创建及仿真测试
%%
% 1. 创建网络
net=newrb(inputn,outputn,0.0001,5,60);
% net.trainFcn='trainrp';
%%
% inputn_test=mapminmax('apply',input_test,inputps);
test_output1=sim(net,inputn_test); %$生成测试数据
test_output=mapminmax('reverse',test_output1,outputps);
%% IV. 性能评价
figure(1)
plot(output_test(1,:),'r-o');%期望数据,即真实的数据画图,-代表实现,*就是代表*的标识
hold on
plot(test_output(1,:),'b-*');%预测数据,即rbf仿真出来的的数据画图,-代表实现,*就是代表*的标识
hold off
legend('实际数据','预测输出')%标签
title('RBF神经网络','fontsize',12)%标题 字体大小为12
ylabel('当日能耗','fontsize',12)%Y轴
xlabel('日期','fontsize',12)%X轴
set(gca,'XTick',[1 5:5:25])
set(gca,'XTickLabel',{'9.15','9.20','9.25','10.1','10.6','10.11'})
figure(2)
plot(output_test(1,:)-test_output(1,:),'k-*');%期望数据,即真实的数据画图,-代表实现,*就是代表*的标识
title('RBF神经网络','fontsize',12)%标题 字体大小为12
ylabel('误差','fontsize',12)%Y轴
xlabel('日期','fontsize',12)%X轴
set(gca,'XTick',[1 5:5:25])
set(gca,'XTickLabel',{'9.15','9.20','9.25','10.1','10.6','10.11'})
%
% net1.b{1}
% net1.iw{1,1}
% net1.b{2}
% net1.lw{2,1}