卷积神经网络CNN的数据回归预测,多输入单输出模型。(主要应用于风速,负荷,功率)

%%  清空环境变量
warning off             % 关闭报警信息
close all               % 关闭开启的图窗
clear                   % 清空变量
clc                     % 清空命令行
tic
% restoredefaultpath

%%  导入数据
P_train = xlsread(‘data’,’training set’,’B2:G191′)’;
T_train= xlsread(‘data’,’training set’,’H2:H191′)’;
% 测试集——44个样本
P_test=xlsread(‘data’,’test set’,’B2:G45′)’;
T_test=xlsread(‘data’,’test set’,’H2:H45′)’;
%%  划分训练集和测试集
M = size(P_train, 2);
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);

%% 数据的一个转换,转换成MATLAB的CNN的输入数据形式,是4-D形式的,最后一维就是样本数
trainD=reshape(p_train,[size(p_train,1),1,1,M]);%训练集输入
testD =reshape(p_test, [size(p_train,1),1,1,N]); %测试集输入
targetD       = t_train;%训练集输出
targetD_test  = t_test;%测试集输出

%% CNN模型建立

layers = [
    imageInputLayer([size(p_train,1) 1 1])     %输入层参数设置
    convolution2dLayer(3,16,’Padding’,’same’)%卷积层的核大小、数量,填充方式
    reluLayer                                %relu激活函数
    fullyConnectedLayer(1)   % 输出层神经元
    regressionLayer];        % 添加回归层,用于计算损失值
%% 模型训练与测试

options = trainingOptions(‘adam’, …
    ‘MaxEpochs’,500, …
    ‘MiniBatchSize’,128, …
    ‘InitialLearnRate’,0.05, …

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
乘风的头像乘风管理团队
上一篇 2023年4月5日
下一篇 2023年4月5日

相关推荐