%% LSTM network
%% import data
clc
clear
close all
%读取double格式数据
[num1,ax,ay] = xlsread('stock_data.xlsx',1);
num1(280,:) = [];
xpan = 5;
n1 = length(num1);
num = [];
for ii = 1:n1-xpan
num = [num;reshape(num1(ii:ii+xpan-1,1:4),1,4*xpan) num1(ii+xpan,:)];
end
n = randperm(length(num));
input_train =num(n(1:end-7),1:24);%训练数据输出数据
output_train = num(n(1:end-7),25);%训练数据输入数据
input_test = num((end-6:end),1:24);%测试数据输出数据
output_test = num((end-6:end),25);%测试数据输入数据
[inputn,inputps]=mapminmax(input_train',-1,1);%训练数据的输入数据的归一化
[outputn,outputps]=mapminmax(output_train',-1,1);%训练数据的输出数据的归一化de
inputn_test=mapminmax('apply',input_test',inputps);
%% Define Network Architecture
% Define the network architecture.
numFeatures = 4*(xpan+1);%输入层维度
numResponses = 1;%输出维度
% 200 hidden units
numHiddenUnits = 10;%第一层维度
% a fully connected layer of size 50 & a dropout layer with dropout probability 0.5
layers = [ ...
sequenceInputLayer(numFeatures)%输入层
lstmLayer(numHiddenUnits,'OutputMode','sequence')%第一层
fullyConnectedLayer(30)%链接层
dropoutLayer(0.2)%遗忘层
fullyConnectedLayer(numResponses)%链接层
regressionLayer];%回归层
% Specify the training options.
% Train for 60 epochs with mini-batches of size 20 using the solver 'adam'
maxEpochs = 60;%最大迭代次数
miniBatchSize =2;%最小批量
% the learning rate == 0.01
% set the gradient threshold to 1
% set 'Shuffle' to 'never'
options = trainingOptions('adam', ... %解算器
'MaxEpochs',maxEpochs, ... %最大迭代次数
'MiniBatchSize',miniBatchSize, ... %最小批次
'InitialLearnRate',0.1, ... %初始学习率
'GradientThreshold',0.5, ... %梯度阈值
'Shuffle','every-epoch', ... %打乱顺序
'Plots','training-progress',... %画图
'Verbose',0); %不输出训练过程
%% Train the Network
net = trainNetwork(inputn,outputn,layers,options);%开始训练
%% Test the Network
y_pred = predict(net,inputn_test,'MiniBatchSize',miniBatchSize)';%测试仿真输出
y_pred=(mapminmax('reverse',y_pred',outputps))';
% y_pred0 = predict(net,inputn,'MiniBatchSize',1)';%训练拟合值
% y_pred0=(mapminmax('reverse',y_pred0',outputps))';
y_pred=(double(y_pred));
figure%打开一个图像窗口
plot(y_pred(:,1),'k-')%黑色实线,点的形状为*
hold on%继续画图
plot(output_test(:,1),'r--')%红色实线,点的形状为o
hold off%停止画图
title('测试图')%标题
ylabel('收盘价')%Y轴名称
legend('测试值','实际值')%标签
ylim([3300 3600])
error1 = y_pred-output_test;%误差
figure
plot(error1(:,1),'k-')
title('收盘价测试误差图')
ylabel('误差')
ylim([-300 300])
[MSE,RMSE,MBE,MAE ] =MSE_RMSE_MBE_MAE(output_test,y_pred);
result_table = table;
result_table.sim = y_pred;
result_table.true = output_test;
writetable(result_table,'./结果.csv')
神经网络机器学习智能算法画图绘图
- 粉丝: 2824
- 资源: 660
最新资源
- 基于前端vue3+element-plus,后端springboot+mysql的智慧云党建系统,BS架构全部资料+高分项目+详细文档.zip
- gripper-anhe
- 基于情感分析的智慧养老系统详细文档+全部资料+高分项目.zip
- 基于停车场系统后台管理,新能源电动车充电系统,智慧社区物业人脸门禁后台管理全部资料+高分项目+详细文档.zip
- 基于微家政-智慧社区家政服务系统全部资料+高分项目+详细文档.zip
- 基于认知计算的智慧就业服务系统全部资料+高分项目+详细文档.zip
- 基于至文掌上社区系统微信小程序端,街道居委在线服务小程序、智慧社区小程序系统全部资料+高分项目+详细文档.zip
- 基于云C智慧药店系统全部资料+高分项目+详细文档.zip
- 基于智慧办公室就是以办公室为平台,兼具办公室环境、办公、设备信息化、设 备智能化、考勤自动化、办公智能化,集系统、结构、服务、管理、监督于一体, 具有高效、安全
- 基于智慧仓库管理系统全部资料+高分项目+详细文档.zip
- 基于智慧城市交通策略优化与调控系统 前端项目全部资料+高分项目+详细文档.zip
- 基于智慧城市大屏可视化系统全部资料+高分项目+详细文档.zip
- 基于智慧城市空气质量预测与分析系统全部资料+高分项目+详细文档.zip
- 基于智慧档案管理系统全部资料+高分项目+详细文档.zip
- 基于智慧点餐系统正式成立全部资料+高分项目+详细文档.zip
- 基于智慧工匠,智能排产系统框架全部资料+高分项目+详细文档.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈