回归预测 | MATLAB实现CNN-LSTM卷积长短期记忆神经网络多输入单输出回归预测
目录
预测效果
基本介绍
MATLAB实现CNN-LSTM卷积长短期记忆神经网络多输入单输出回归预测
数据准备:准备你的输入数据和目标输出数据。
数据预处理:将数据进行归一化或标准化处理,并划分为训练集和测试集。
构建模型:使用MATLAB的深度学习工具箱来构建CNN-LSTM模型。
训练模型:使用训练数据来训练模型。
评估模型:使用验证集和测试集来评估模型的性能。
预测:使用训练好的模型进行预测。
程序设计
clike
%% 清空环境变量
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:size(P_train,2)
trainD{i,:} = (reshape(p_train(:,i),size(p_train,1),1,1));
end
for i = 1:size(p_test,2)
testD{i,:} = (reshape(p_test(:,i),size(p_test,1),1,1));
end
targetD = t_train;
targetD_test = t_test;
numFeatures = size(p_train,1);
layers0 = [ ...
参考资料
[1] https://blog.csdn.net/kjm13182345320/article/details/128267322?spm=1001.2014.3001.5501
[2] https://blog.csdn.net/kjm13182345320/article/details/128234920?spm=1001.2014.3001.5501