%% 清空环境变量
warning off % 关闭报警信息
close all % 关闭开启的图窗
clear % 清空变量
clc
%% 导入数据
data = readmatrix('day.csv');
data = data(:,3:16);
res=data(randperm(size(data,1)),:); %此行代码用于打乱原始样本,使训练集测试集随机被抽取,有助于更新预测结果。
num_samples = size(res,1); %样本个数
% 训练集和测试集划分
outdim = 1; % 最后一列为输出
num_size = 0.7; % 训练集占数据集比例
num_train_s = round(num_size * num_samples); % 训练集样本个数
f_ = size(res, 2) - outdim; % 输入特征维度
P_train = res(1: num_train_s, 1: f_)';
T_train = res(1: num_train_s, f_ + 1: end)';
M = size(P_train, 2);
P_test = res(num_train_s + 1: end, 1: f_)';
T_test = res(num_train_s + 1: end, f_ + 1: end)';
N = size(P_test, 2);
% 数据归一化
[p_train, ps_input] = mapminmax(P_train, 0, 1);
p_test = mapminmax('apply', P_test, ps_input);
[t_train, ps_output] = mapminmax(T_train, 0, 1);
t_test = mapminmax('apply', T_test, ps_output);
% 格式转换
for i = 1 : M
vp_train{i, 1} = p_train(:, i);
vt_train{i, 1} = t_train(:, i);
end
for i = 1 : N
vp_test{i, 1} = p_test(:, i);
vt_test{i, 1} = t_test(:, i);
end
% 创建LSTM网络,
layers = [ ...
sequenceInputLayer(f_) % 输入层
lstmLayer(50)
reluLayer
fullyConnectedLayer(outdim) % 回归层
regressionLayer];
% 参数设置
options = trainingOptions('adam', ... % 优化算法Adam
'MaxEpochs', 150, ... % 最大训练次数
'GradientThreshold', 1, ... % 梯度阈值
'InitialLearnRate', 0.01, ... % 初始学习率
'LearnRateSchedule', 'piecewise', ... % 学习率调整
'LearnRateDropPeriod', 100, ... % 训练850次后开始调整学习率
'LearnRateDropFactor',0.2, ... % 学习率调整因子
'L2Regularization', 0.01, ... % 正则化参数
'ExecutionEnvironment', 'cpu',... % 训练环境
'Verbose', 1, ... % 关闭优化过程
'Plots', 'NONE'); % 画出曲线
% 训练
tic
net = trainNetwork(vp_train, vt_train, layers, options);
toc
%analyzeNetwork(net);% 查看网络结构
% 预测
t_sim1 = predict(net, vp_train);
t_sim2 = predict(net, vp_test);
% 数据反归一化
T_sim1 = mapminmax('reverse', t_sim1, ps_output);
T_sim2 = mapminmax('reverse', t_sim2, ps_output);
T_train1 = T_train;
T_test2 = T_test;
% 数据格式转换
T_sim1 = cell2mat(T_sim1);% cell2mat将cell元胞数组转换为普通数组
T_sim2 = cell2mat(T_sim2);
LSTM_TSIM1 = T_sim1';
LSTM_TSIM2 = T_sim2';
save LSTM LSTM_TSIM1 LSTM_TSIM2
% 指标计算
disp('…………训练集误差指标…………')
[mae1,rmse1,mape1,error1]=calc_error(T_train1,T_sim1');
fprintf('\n')
figure
plot(T_train1,'b-o');
hold on
plot(T_sim1','r-*');
legend('真实值','回归拟合值')
title('LSTM训练集回归拟合效果对比')
xlabel('样本点')
ylabel('数量')
disp('…………LSTM测试集误差指标…………')
[mae2,rmse2,mape2,error2]=calc_error(T_test2,T_sim2');
fprintf('\n')
figure
plot(T_test2,'b-o');
hold on
plot(T_sim2','r-*');
legend('真实值','回归拟合值')
title('LSTM测试集回归拟合效果对比')
xlabel('样本点')
ylabel('数量')
figure
plot(T_sim2'-T_test2)
title('LSTM误差曲线图')
xlabel('样本点')
ylabel('数量')
没有合适的资源?快使用搜索试试~ 我知道了~
LSTM长短期记忆神经网络多输入单输出回归预测(Matlab完整源码和数据)

共7个文件
png:3个
m:2个
mat:1个

1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉

温馨提示
1.Matlab实现LSTM长短期记忆神经网络多输入单输出回归预测(Matlab完整源码和数据)。 2.输出MAE 、 MAPE、MSE、RMSE、R2多指标评价,运行环境Matlab2023b及以上。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 5.作者介绍:机器学习之心,博客专家认证,机器学习领域创作者,2023博客之星TOP50,主做机器学习和深度学习时序、回归、分类、聚类和降维等程序设计和案例分析,文章底部有博主联系方式。从事Matlab、Python算法仿真工作8年,更多仿真源码、数据集定制私信.
资源推荐
资源详情
资源评论






























收起资源包目录








共 7 条
- 1
资源评论

- junchiabcde2025-03-05发现一个宝藏资源,赶紧冲冲冲!支持大佬~
- 普通网友2025-04-11发现一个超赞的资源,赶紧学习起来,大家一起进步,支持!

机器学习之心
- 粉丝: 3w+
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 基于STM的FSMC接口驱动TFT彩屏的设计方案.doc
- 计算机网络技术专业毕业设计选题参考.doc
- 图形图像处理在影视创作中的应用------.pdf
- 最新XX公司电脑网络维护服务协议书.doc
- 软件工程—可行性研究PPT课件.ppt
- 青少年的网络成瘾(社区讲座).ppt
- 智能高清网络监控系统创业商业计划书.doc
- 电子商务助理工作总结.docx
- 2019年网站编辑试用期转正工作总结范文.pdf
- 项目12单片机嵌入式系统原理及应用(贾好来)ARM单片机结.pptx
- 县电子商务进农村农村电商一帮一带规划方案.docx
- 2023年全国计算机等级考试一级试题目及答案.doc
- 电子商务与物流案例分析.ppt
- 年土木工程项目管理考试--答案及评分格式.doc
- 个人所得税自行申报软件操作说明书.docx
- 如何做好项目管理案例结合实际.ppt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
