⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 测试代码.m

📁 利用人工神经网络进行预测的Matlab程序 其中包括好几种例子
💻 M
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%变量说明%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% p_3 : 输入向量
%% p_4:  对p_3转秩且归一化后的向量
%% t_3:   预测的真值
%% t_4:   对t_3进行归一化后的向量
%% out_2:  网络仿真的输出值
%% out_3:  out_2反归一化后的值


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%从EXCEL载入初始数据%%%%%%%%%%%%%%%%
c_1=[data];
%%%%%%%%%%%%%%%%变量定义%%%%%%%%%%%%%%%%
L=15 ;    %%%%%测试样本总数%%%%%
n=3 ;       %%%%%每个样本含有数据的天数%%%%%
max_1=[10 419564736 1200 1800];         %%%%%%%%定义归一化时的最大值%%%%%%%%%%
min_1=[5 2479420 700 1000];            %%%%%%%%定义归一化时的最小值%%%%%%%%%%
%%%%%%%%%%%%%%%%%定义输入向量:p_3%%%%%%%%%%%%%%%%
p_3(L,n*4)=1;         %%%%%%%%K行4n列的矩阵
tt=0;
for i=1:L
    for j=1:n
        tt=tt+1;
        p_3(i,1+(j-1)*4:4*j)=c_1(tt,:);
    end
end
p_4=p_3';
%%%%%%%%%%%%%%%%定义目标向量:t_1%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%从EXCEL载入目标向量数据%%%%%%%%%%%%%%%%
c_2=[data];
t_3=c_2';
t_4=t_3;
%%%%%%%%%%%%%%%%归一化  界定在(0,1)%%%%%%%%%%%%%%%%
for i=1:n*4
    j=rem(i,4);
if(j==0)
   j=4;
end
    p_4(i,:)=(p_4(i,:)-min_1(j))/(max_1(j)-min_1(j)); %%%%%输入数据%%%%%
end

   t_4(1,:)=(t_4(1,:)-min_1(1))/(max_1(1)-min_1(1)); %%%%%目标数据%%%%%
%%%%%%%%%%%%%%%%仿真%%%%%%%%%%%%%%%%
out_2=sim(net,p_4);    %%%%%%%仿真后输出向量
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%将网络输出反归一化处理%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%       
   out_3(1,:)=out_2(1,:)* ((max_1(1)-min_1(1)))+ min_1(1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 e=t_3-out_3;        %%%%%%%%误差向量%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%网络性能评价%%%%%&&&&&&&&&&&&&&&&&&&&&7
%%%%%求MAE%%%%%%%%%%
x_1=0;
for i=1:L
    x_1=x_1+abs(e(i));
end
MAE=x_1/L
%%%%%求SSE%%%%%%%%%%
x_2=0;
for i=1:L
    x_2=x_2+e(i)*e(i);
end
SSE=x_2
%%%%%求MSE%%%%%%%%%%
MSE=x_2/L

%%%%%求MAPE%%%%%%%%%%
x_3=0;
for i=1:L
    x_3=x_3+abs(e(i)/t_3(i));
end
MAPE=x_3/L
%%%%%求精度A%%%%%%%%%%
A=1-MAPE
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%for i=1:n*4
  %  j=rem(i,4);
%if(j==0)
%   j=4;
%end
 %   p(i,:)=(p(i,:)-min_1(j))/(max_1(j)-min_1(j)); %%%%%输入数据%%%%%
%end

%   t(1,:)=(t(1,:)-min_1(1))/(max_1(1)-min_1(1)); %%%%%目标数据%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%绘制图形%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
error_1=t_3-out_3;
X=1:L;
figure(1);
plot(X,error_1)
xlabel('测试样本(X)');
ylabel('股票价格预测误差(Y)');  %%%%%%%%%%%%%%%%%%%%%%%%%%%%网络误差曲线图%%%%%%%%%%%%%%%%%
figure(2);
plot(X,t_3,'r+');%%%%%%%%%%%%%绘制真值%%%%%%%%%%%%%%%%%%%%%%
hold on
plot(X,out_3,'.'); %%%%%%%%%%%%%绘制预测的数值%%%%%%%%%%%%%%%
xlabel('测试样本(X)');
ylabel('股票价格预测值 /真值(Y)');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%预测值与真值比较图%%%%%%%%%%%%%

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -