📄 3输入.m
字号:
%%%%%%%%%%%%%%%%从EXCEL载入初始数据%%%%%%%%%%%%%%%%
a=[data]';
%%%%%%%%%%%%%%%%变量定义%%%%%%%%%%%%%%%%
L=269 ; %%%%%股价历史数据总数%%%%%
n=3 ; %%%%%神经网络输入数据数量%%%%%
m=1 ; %%%%%神经网络输出数据数量%%%%%
k=L-(n+m)+1; %%%%%样本个数%%%%%
%%%%%%%%%%%%%%%%%经验公式计算初始隐节点数%%%%%%%%%%%%%%%%%
s=sqrt(0.43*m*n+0.12*n*n+2.54*m+0.77*n+0.35)+0.51;
s=round(s)
%%%%%%%%%%%%%%%%%定义输入向量:p_1%%%%%%%%%%%%%%%%
p_1(k,n)=1; %K行三列的矩阵
for i=1:k
p_1(i,:)=a(1,i:(i+n-1));
end
p_2=p_1';
%%%%%%%%%%%%%%%%定义目标向量:t_1%%%%%%%%%%%%%%%%
t_1(1,k)=1;
for i=1:k
t_1(1,i)=a(1,n+i);
end
%%%%%%%%%%%%%%%%定义测试向量:test_1%%%%%%%%%%%%%%%%
test_1(5,n)=1;
for i=1:5
test_1(i,:)=a(1,i:i+n-1);
end
test_2=test_1'
%%%%%%%%%%%%%%%%定义测试真值向量:testrue_1%%%%%%%%%%%%%%%%
testrue_1(1,5)=1;
for i=1:5
testrue_1(1,i)=a(1,n+i);
end
%%%%%%%%%%%%%%%%归一化 界定在[0,1]%%%%%%%%%%%%%%%%
for i=1:n
p_2(i,:)=(p_2(i,:)-min(a))/(max(a)-min(a)); %%%%%输入数据%%%%%
end
t_1(1,:)=(t_1(1,:)-min(a))/(max(a)-min(a)); %%%%%目标数据%%%%%
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
threshold(i,1)=0;
threshold(i,2)=1;
end
%%%%%确定输入神经元个数及取值范围%%%%%
net=newff(threshold,[4,1],{'tansig','logsig'},'trainlm');
net.trainParam.epochs=1000; %%%%%训练次数%%%%%
net.trainParam.goal=0.001; %%%%%训练目标%%%%%
net.trainParam.show=20;
LP.lr=0.8; %%%%%学习速率%%%%%
net=train(net,p_2,t_1); %%%%%训练%%%%%
%%%%%%%%%%%%%%%%仿真预测%%%%%%%%%%%%%%%%
out=sim(net,test_2);
%%%%%%%%%%%%%%%%反归一化%%%%%%%%%%%%%%%%
for i=1:5
out_1(i)=out(i)* (max(a)-min(a))+ min(a);
end
out_1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -