function [error,T_sim1,T_sim2]=Transformer(x,p_train, t_train,p_test,T_train , T_test,M,N,NN, ps_output)
outdim = 1; % 最后一列为输出
f_ = NN - outdim; % 输入特征维度
%% 导入数据
% res = xlsread('data.xlsx');
%% 数据分析
% num_size = 0.8; % 训练集占数据集比例
% outdim = 1; % 最后一列为输出
% num_samples = size(res, 1); % 样本个数
% res = res(randperm(num_samples), :); % 打乱数据集(不希望打乱时,注释该行)
% num_train_s = round(num_size * num_samples); % 训练集样本个数
%
%
% %% 划分训练集和测试集
% 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);
%% 数据平铺
% 将数据平铺成1维数据只是一种处理方式
% 也可以平铺成2维数据,以及3维数据,需要修改对应模型结构
% 但是应该始终和输入层数据结构保持一致
% P_train = double(reshape(P_train, f_, 1, 1, M));
% P_test = double(reshape(P_test , f_, 1, 1, N));
%
% t_train = t_train';
% t_test = t_test' ;
%
% %% 数据格式转换
% for i = 1 : M
% p_train{i, 1} = P_train(:, :, 1, i);
% end
%
% for i = 1 : N
% p_test{i, 1} = P_test( :, :, 1, i);
% end
%% 创建模型
%网络搭建
numChannels = f_;
maxPosition = 256;
numHeads = 4;
numKeyChannels = numHeads*32;
layers = [
sequenceInputLayer(numChannels,Name="input")
positionEmbeddingLayer(numChannels,maxPosition,Name="pos-emb");
additionLayer(2, Name="add")
selfAttentionLayer(numHeads,numKeyChannels,'AttentionMask','causal')
selfAttentionLayer(numHeads,numKeyChannels)
indexing1dLayer("last")
fullyConnectedLayer(1)
regressionLayer];
lgraph = layerGraph(layers);
lgraph = connectLayers(lgraph,"input","add/in2");
%% 参数设置
options = trainingOptions('adam', ... % Adam 梯度下降算法
'MaxEpochs', 200, ... % 最大训练次数
'InitialLearnRate', x(1), ... % 初始学习率
'LearnRateSchedule', 'piecewise', ... % 学习率下降
'LearnRateDropFactor', x(2), ... % 学习率下降因子
'LearnRateDropPeriod', 200, ... % 经过训练后 学习率
'Shuffle', 'every-epoch', ... % 每次训练打乱数据集
'Verbose', false);
%% 训练模型
net = trainNetwork(p_train, t_train, lgraph, options);
%% 仿真预测
t_sim1 = predict(net, p_train);
t_sim2 = predict(net, p_test );
%% 数据反归一化
T_sim1 = mapminmax('reverse', t_sim1', ps_output);
T_sim2 = mapminmax('reverse', t_sim2', ps_output);
% %% 查看网络结构
% analyzeNetwork(net)
%
%% 均方根误差
error1 = sqrt(sum((T_sim1 - T_train).^2) ./ M);
error2 = sqrt(sum((T_sim2 - T_test ).^2) ./ N);
error=(error2+error1)/2
%
% %% 相关指标计算
% % R2
% R1 = 1 - norm(T_train - T_sim1)^2 / norm(T_train - mean(T_train))^2;
% R2 = 1 - norm(T_test - T_sim2)^2 / norm(T_test - mean(T_test ))^2;
%
% disp(['训练集数据的R2为:', num2str(R1)])
% disp(['测试集数据的R2为:', num2str(R2)])
%
% % MAE
% mae1 = sum(abs(T_sim1 - T_train)) ./ M ;
% mae2 = sum(abs(T_sim2 - T_test )) ./ N ;
%
% disp(['训练集数据的MAE为:', num2str(mae1)])
% disp(['测试集数据的MAE为:', num2str(mae2)])
%
% %% 平均绝对百分比误差MAPE
% MAPE1 = mean(abs((T_train - T_sim1)./T_train));
% MAPE2 = mean(abs((T_test - T_sim2)./T_test));
%
% disp(['训练集数据的MAPE为:', num2str(MAPE1)])
% disp(['测试集数据的MAPE为:', num2str(MAPE2)])
%
% % MBE
% mbe1 = sum(T_sim1 - T_train) ./ M ;
% mbe2 = sum(T_sim2 - T_test ) ./ N ;
%
% disp(['训练集数据的MBE为:', num2str(mbe1)])
% disp(['测试集数据的MBE为:', num2str(mbe2)])
%
% %均方误差 MSE
% mse1 = sum((T_sim1 - T_train).^2)./M;
% mse2 = sum((T_sim2 - T_test).^2)./N;
%
% disp(['训练集数据的MSE为:', num2str(mse1)])
% disp(['测试集数据的MSE为:', num2str(mse2)])
%
%
% %% 绘图
% figure
% plot(T_sim1,'-p','Color',[255 0 0]./255,'linewidth',1,'Markersize',2,'MarkerFaceColor','b')
% hold on
% plot(T_train,'-^','Color',[50 50 50]./255,'linewidth',1,'Markersize',2,'MarkerFaceColor','r')
% legend('预测值','真实值')
% xlabel('预测样本')
% ylabel('预测结果')
% string = {'训练集预测结果对比'; ['RMSE=' num2str(error1)]};
% title(string)
% xlim([1, M])
% grid
% ax=gca;hold on
% % -------------------------------------------------------------------------
% % 坐标区域修饰
% ax.XLabel.FontWeight='bold';
% ax.YLabel.FontWeight='bold';
% % 设置轴线粗细和刻度朝外
% ax.LineWidth=1;
% ax.TickDir='out';
% %% 训练集误差图
% figure
% bar((T_sim1 - T_train)./T_train)
% legend('模型训练集相对误差','Location','NorthEast','FontName','楷体')
% title('模型训练集相对误差','fontsize',12,'FontName','楷体')
% ylabel('误差','fontsize',12,'FontName','楷体')
% xlabel('样本','fontsize',12,'FontName','楷体')
% xlim([1 M]);
%
% figure
% plot(T_sim2,'-p','Color',[255 0 0]./255,'linewidth',1,'Markersize',2,'MarkerFaceColor','b')
% hold on
% plot(T_test,'-^','Color',[50 50 50]./255,'linewidth',1,'Markersize',2,'MarkerFaceColor','r')
% legend('预测值','真实值')
% xlabel('预测样本')
% ylabel('预测结果')
% string = {'测试集预测结果对比'; ['RMSE=' num2str(error2)]};
% title(string)
% xlim([1, N])
% grid
% ax=gca;hold on
% % -------------------------------------------------------------------------
% % 坐标区域修饰
% ax.XLabel.FontWeight='bold';
% ax.YLabel.FontWeight='bold';
% % 设置轴线粗细和刻度朝外
% ax.LineWidth=1;
% ax.TickDir='out';
% %% 测试集误差图
% figure
% bar((T_sim2 - T_test )./T_test)
% legend('模型测试集相对误差','Location','NorthEast','FontName','楷体')
% title('模型测试集相对误差','fontsize',12,'FontName','楷体')
% ylabel('误差','fontsize',12,'FontName','楷体')
% xlabel('样本','fontsize',12,'FontName','楷体')
% xlim([1 N]);
%
% %% 绘制线性拟合图
% %% 训练集拟合效果图
% figure
% plot(T_train,T_sim1,'s','Markersize',2);
% xlabel('真实值')
% ylabel('预测值')
% string = {'训练集效果图';['R^2_c=' num2str(R1) ' RMSEC=' num2str(error1) ]};
% title(string)
% hold on ;h=lsline;
% set(h,'LineWidth',2,'LineStyle','-','Color',[1 1 0])
% %% 预测集拟合效果图
% figure
% plot(T_test,T_sim2,'s','Markersize',2);
% xlabel('真实值')
% ylabel('预测值')
% string1 = {'测试集效果图';['R^2_p=' num2str(R2) ' RMSEP=' num2str(error2) ]};
% title(string1)
% hold on ;h=lsline();
% set(h,'LineWidth',2,'LineStyle','-','Color',[1 1 0])
没有合适的资源?快使用搜索试试~ 我知道了~
基于蜣螂算法优化DBO-Transformer实现光伏数据回归预测附matlab代码 标准.rar
![preview](https://csdnimg.cn/release/downloadcmsfe/public/img/white-bg.ca8570fa.png)
共14个文件
png:7个
m:6个
xlsx:1个
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 132 浏览量
2024-08-14
23:48:16
上传
评论
收藏 255KB RAR 举报
温馨提示
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手
资源推荐
资源详情
资源评论
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
收起资源包目录
![package](https://csdnimg.cn/release/downloadcmsfe/public/img/package.f3fc750b.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/XLSX.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
共 14 条
- 1
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/864ffdc5a26342a6add0026479aef1e5_matlab_dingdang.jpg!1)
matlab科研助手
- 粉丝: 2w+
- 资源: 5917
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
- Cesium 展示-视角漫游飞行效果无人机模型
- 晶圆制造IC制作流程,晶圆制造IC制作流程
- 802.1W中文版反应
- Wireshark抓包分析指南-Wireshark是一个网络数据库分析软件,功能十分强大
- 微信第三方平台/微信开放平台,小程序分发功能接口
- requirements.txt
- 深入掌握 Intersection Observer API:JavaScript 中的高效元素可见性检测
- 掌握代码注释的艺术:C++中的注释管理与实
- 基于python的车牌识别代码
- 焊缝跟踪 abb机器人二次开发 上位机由C#+halcon联合编程 提供源码讲解,abb编程及通讯、工业相机标定、halcon图
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)