📄 综合输入.m
字号:
%%%%%%%%%%%%%%%%从EXCEL载入初始数据%%%%%%%%%%%%%%%%
a=[data];
%%%%%%%%%%%%%%%%变量定义%%%%%%%%%%%%%%%%
L=240 ; %%%%%股价历史数据总数%%%%%
n=3 ; %%%%%神经网络输入数据数量%%%%%
m=1 ; %%%%%神经网络输出数据数量%%%%%
k=L-(n+m)+1; %%%%%样本个数%%%%%
max_1=[10 419564736 1200 1800]; %%%%%%%%定义最大值%%%%%%%%%%
min_1=[5 2479420 700 1000]; %%%%%%%%定义最小值%%%%%%%%%%
%%%%%%%%%%%%%%%%%经验公式计算初始隐节点数%%%%%%%%%%%%%%%%%
s=sqrt(0.43*m*n*4+0.12*n*16*n+2.54*m+0.77*n*4+0.35)+0.51;
s=round(s)
%%%%%%%%%%%%%%%%%定义输入向量:p_1%%%%%%%%%%%%%%%%
p_1(k,n*4)=1; %K行4n列的矩阵
for i=1:k
for j=1:n
p_1(i,1+(j-1)*4:4*j)=a((i+j-1),:);
end
end
p_2=p_1';
%%%%%%%%%%%%%%%%定义目标向量:t_1%%%%%%%%%%%%%%%%
t_1(1,k)=1;
for i=1:k
t_1(1,i)=a(n+i,1);
end
t_2=t_1;
%%%%%%%%%%%%%%%%归一化 界定在(0,1)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for i=1:n*4
j=rem(i,4);
if(j==0)
j=4;
end
p_2(i,:)=(p_2(i,:)-min_1(j))/(max_1(j)-min_1(j)); %%%%%输入数据%%%%%
end
t_2(1,:)=(t_2(1,:)-min_1(1))/(max_1(1)-min_1(1)); %%%%%目标数据%%%%%
%for i=1:n
% test_2(i,:)=(test_2(i,:)-min(a))/(max(a)-min(a)); %%%%%测试数据%%%%%
%end
%testrue_1(1,:)=(testrue_1(1,:)-min(a))/(max(a)-min(a)); %%%%%测试真值%%%%%
%%%%%%%%%%%%%%%%训练%%%%%%%%%%%%%%%%
for i=1:n*4
threshold(i,1)=0;
threshold(i,2)=1;
end
%%%%%确定输入神经元个数及取值范围%%%%%
net=newff(threshold,[5,1],{'tansig','logsig'},'trainlm');
net.trainParam.epochs=1000; %%%%%训练次数%%%%%
net.trainParam.goal=0.0001; %%%%%训练目标%%%%%
net.trainParam.show=20;
LP.lr=0.8; %%%%%学习速率%%%%%
net=train(net,p_2,t_2); %%%%%训练%%%%%
save dyson_2 net;
%%%%%%%%%%%%%%%%仿真预测%%%%%%%%%%%%%%%%
out=sim(net,p_2);
%%%%%%%%%%%%%%%%%%%%%%%将网络输出反归一化处理%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
out_1(1,:)=out(1,:)* ((max_1(1)-min_1(1)))+ min_1(1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
e=t_1-out_1; %%%%%%%%误差向量%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%网络评价%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%求MAE%%%%%%%%%%
x_1=0;
for i=1:k
x_1=x_1+abs(e(i));
end
MAE=x_1/k
%%%%%求SSE%%%%%%%%%%
x_2=0;
for i=1:k
x_2=x_2+e(i)*e(i);
end
SSE=x_2
%%%%%求MSE%%%%%%%%%%
MSE=x_2/k
D=mse(e)
%%%%%求MAPE%%%%%%%%%%
x_3=0;
for i=1:k
x_3=x_3+abs(e(i)/t_1(i));
end
MAPE=x_3/k
%%%%%求精度A%%%%%%%%%%
A=1-MAPE
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%绘制图形%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
error=t_1-out_1;
X=1:k;
figure(1);
plot(X,error)
xlabel('训练样本(X)');
ylabel('股票价格预测误差(Y)'); %%%%%%%%%%%%%%%%%%%%%%%%%%%%网络误差曲线图%%%%%%%%%%%%%%%%%
figure(2);
plot(X,t_1,'r+');%%%%%%%%%%%%%绘制真值%%%%%%%%%%%%%%%%%%%%%%
hold on
plot(X,out_1,'.'); %%%%%%%%%%%%%绘制预测的数值%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%预测值与真值比较图%%%%%%%%%%%%%
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -