【风电功率预测】海洋捕食算法MPA优化BP神经网络风电功率预测【含Matlab源码 3770期】-程序员宅基地

技术标签: matlab  Matlab神经网络预测与分类 (进阶版)  

博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。
个人主页:海神之光
代码获取方式:
海神之光Matlab王者学习之路—代码获取方式
️座右铭:行百里者,半于九十。

更多Matlab仿真内容点击
Matlab图像处理(进阶版)
路径规划(Matlab)
神经网络预测与分类(Matlab)
优化求解(Matlab)
语音处理(Matlab)
信号处理(Matlab)
车间调度(Matlab)

一、海洋捕食算法MPA优化BP神经网络风电功率预测

1 海洋捕食算法
海洋捕食算法(Marine Predators Algorithm,MPA)是一种受到海洋捕食行为启发的群体智能优化算法。它模拟了海洋生态系统中的捕食行为,通过个体之间的相互作用和信息交流来寻找最优解。

海洋捕食算法的基本原理是将问题转化为一组个体在搜索空间中的位置,这些个体被称为捕食者和猎物。捕食者根据自身适应度和周围猎物的信息选择最佳的位置,而猎物则根据自身适应度和周围捕食者的信息选择逃避或者被捕食的策略。

海洋捕食算法的主要步骤如下:
(1)初始化种群:随机生成一组捕食者和猎物个体,并为每个个体分配初始位置和速度。
(2)评估适应度:根据问题的优化目标,计算每个个体的适应度值。
(3)更新位置和速度:根据捕食者和猎物个体之间的相互作用和信息交流,更新每个个体的位置和速度。
(4)选择最优解:根据适应度值,选择出最优的解决方案作为当前的最优解。
(5)终止条件判断:判断是否满足终止条件,如果满足则结束算法,否则回到第3步继续迭代。
海洋捕食算法具有一定的全局搜索能力和收敛性能,适用于解决各种优化问题,如函数优化、参数优化、组合优化等。它在某些问题上能够提供较好的性能和效果。

2 BP神经网络
2.1 BP神经网络的结构组成
BP神经网络结构组成:2输入1输出,5个隐含层的,也称为2-5-1网络结构;
Neural Network:神经网络
Input:输入
Hidden LayerOutput Layer:隐藏层输出层
Output Layer:输出层
Output :输出
在这里插入图片描述
2.2 BP神经网络训练界面的参数
2.2.1 BP神经网络算法
Algorithms:算法
Data Division:Random(divider and) 数据划分:随机(除数和)
Training:Levenberg-Marquardt(train lm) 训练:表示训练采用的方法
Performance:Mean Squared Error(mse) 性能:均方误差(mse) 用均方误差衡量网络性能
Calculations:MEX 计算方式:MEX

2.2.2 BP神经网络进程
Progress 进程
Epoch: 训练次数
Time: 训练时间
Performance: 网络性能
Gradient: 梯度算子
Mu: 误差精度
Validation Checks: 泛化性( 表示BP神经网络在训练过程中,如果均方误差(MSE)连续6次不降反升,则网络停止训练)

2.2.3 BP神经网络情节
Plots 绘图
Performance 网络性能
Training State 训练阶段参数变化情况
Regression 相关性分析

2.3 BP神经网络预测步骤
(1)读取数据
(2)设置训练数据和预测数据
(3)训练样本数据归一化
(4)构建BP神经网络
(5)网络参数配置(训练次数,学习速率,训练目标最小误差.等)
(5)BP神经网络训练
(6)测试样本归一化
(7)BP神经网络预测
(8)预测结果反归一化与误差计算
(8)验证集的真实值与预测值误差比较

2.4 BP神经网络预测案例代码

%% 此程序为matlab编程实现的BP神经网络
% 清空环境变量
clear
close all
clc

%%第一步 读取数据
input=randi([1 20],200,2);  %载入输入数据
output=input(:,1)+input(:,2);  %载入输出数据

%% 第二步 设置训练数据和预测数据
input_train = input(1:190,:)';
output_train =output(1:190,:)';
input_test = input(191:200,:)';
output_test =output(191:200,:)';
%节点个数
inputnum=2; % 输入层节点数量
hiddennum=5;% 隐含层节点数量
outputnum=1; % 输出层节点数量
%% 第三本 训练样本数据归一化
[inputn,inputps]=mapminmax(input_train);%归一化到[-1,1]之间,inputps用来作下一次同样的归一化
[outputn,outputps]=mapminmax(output_train);
%% 第四步 构建BP神经网络
net=newff(inputn,outputn,hiddennum,{
    'tansig','purelin'},'trainlm');% 建立模型,传递函数使用purelin,采用梯度下降法训练

W1= net. iw{
    1, 1};%输入层到中间层的权值
B1 = net.b{
    1};%中间各层神经元阈值

W2 = net.lw{
    2,1};%中间层到输出层的权值
B2 = net. b{
    2};%输出层各神经元阈值

%% 第五步 网络参数配置( 训练次数,学习速率,训练目标最小误差等)
net.trainParam.epochs=1000;         % 训练次数,这里设置为1000次
net.trainParam.lr=0.01;                   % 学习速率,这里设置为0.01
net.trainParam.goal=0.00001;                    % 训练目标最小误差,这里设置为0.00001

%% 第六步 BP神经网络训练
net=train(net,inputn,outputn);%开始训练,其中inputn,outputn分别为输入输出样本

%% 第七步 测试样本归一化
inputn_test=mapminmax('apply',input_test,inputps);% 对样本数据进行归一化

%% 第八步 BP神经网络预测
an=sim(net,inputn_test); %用训练好的模型进行仿真

%% 第九步 预测结果反归一化与误差计算     
test_simu=mapminmax('reverse',an,outputps); %把仿真得到的数据还原为原始的数量级
error=test_simu-output_test;      %预测值和真实值的误差

%%第十步 真实值与预测值误差比较
figure('units','normalized','position',[0.119 0.2 0.38 0.5])
plot(output_test,'bo-')
hold on
plot(test_simu,'r*-')
hold on
plot(error,'square','MarkerFaceColor','b')
legend('期望值','预测值','误差')
xlabel('数据组数')
ylabel('样本值')
title('BP神经网络测试集的预测值与实际值对比图')

[c,l]=size(output_test);
MAE1=sum(abs(error))/l;
MSE1=error*error'/l;
RMSE1=MSE1^(1/2);
disp(['-----------------------误差计算--------------------------'])
disp(['隐含层节点数为',num2str(hiddennum),'时的误差结果如下:'])
disp(['平均绝对误差MAE为:',num2str(MAE1)])
disp(['均方误差MSE为:       ',num2str(MSE1)])
disp(['均方根误差RMSE为:  ',num2str(RMSE1)])

二、部分源代码

%% 基于海洋捕食优化的BP神经网络预测
clear all
clc
close all
warning off;
%% 导入数据
load data
% 训练集——1900个样本
P_train=input(1:1900,:)‘;
T_train=output(1:1900);
% 测试集——100个样本
P_test=input(1901:2000,:)’;
T_test=output(1901:2000);

%% 归一化
% 训练集
[Pn_train,inputps] = mapminmax(P_train,-1,1);
Pn_test = mapminmax(‘apply’,P_test,inputps);
% 测试集
[Tn_train,outputps] = mapminmax(T_train,-1,1);
Tn_test = mapminmax(‘apply’,T_test,outputps);
%% 构造网络结构
%创建神经网络
inputnum = 2; %inputnum 输入层节点数 4维特征
hiddennum = 10; %hiddennum 隐含层节点数
outputnum = 1; %outputnum 隐含层节点数
%% BP
net = newff( minmax(Pn_train) , [hiddennum outputnum] , { ‘logsig’ ‘purelin’ } , ‘traingdx’ ) ;
%设置训练参数
net.trainparam.show = 50 ;
net.trainparam.epochs = 200 ;
net.trainparam.goal = 0.01 ;
net.trainParam.lr = 0.01 ;
net = train( net, Pn_train , Tn_train ) ;
%测试集预测
Y = sim( net , Pn_test );
error = Y - Tn_test;

%% 构造海洋捕食优化器
popsize = 20;%种群数量
Max_iteration = 50;%最大迭代次数
lb = -2;%权值阈值下边界
ub = 2;%权值阈值上边界
% inputnum * hiddennum + hiddennumoutputnum 为权值的个数
% hiddennum + outputnum 为阈值的个数
dim = inputnum * hiddennum + hiddennum
outputnum + hiddennum + outputnum ;% inputnum * hiddennum + hiddennum*outputnum维度
fobj = @(x)funBP(x,inputnum,hiddennum,outputnum,Pn_train,Tn_train,Pn_test,Tn_test);
[Best_score,Best_pos,MPA_cg_curve]=MPA(popsize,Max_iteration,lb,ub,dim,fobj);
[fitness,Y_MPA ] = funBP(Best_pos,inputnum,hiddennum,outputnum,Pn_train,Tn_train,Pn_test,Tn_test);
figure
plot(MPA_cg_curve,‘Color’,‘r’)
title(‘Objective space’)
xlabel(‘Iteration’);
ylabel(‘Best score obtained so far’);
legend(‘MPA’)
grid on;
%测试集预测

%% 作图
figure
plot(Tn_test,‘k-p’,‘linewidth’,1)
hold on
plot(Y,‘c-s’,‘linewidth’,1,‘markerfacecolor’,‘b’)
hold on
plot(Y_MPA,‘g-o’,‘linewidth’,1,‘markerfacecolor’,‘r’)
legend(‘真实值’,‘BP预测值’,‘海洋捕食算法优化BP预测值’)
xlabel(‘测试样本编号’)
ylabel(‘指标值’)
title(‘海洋捕食算法优化前后的BP神经网络预测值和真实值对比图’)

error = Y_MPA - Tn_test;
% 均方误差
E1 = mse(error);
figure
plot(error,‘b:o’)
title(‘海洋捕食BP神经网络预测得到的误差分布’)
xlabel(‘index’)
ylabel(‘误差’)
grid on
disp([‘海洋捕食BP神经网络得到的MSE:’,num2str(E1)])

三、运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]赵侃,师芸,牛敏杰,王虎勤.基于改进麻雀搜索算法优化BP神经网络的PM2.5浓度预测[J].测绘通报. 2022(10)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

仿真咨询
1 各类智能优化算法改进及应用

生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化

2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断

3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知

4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化

5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配

6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化

7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化

8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置

9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长

10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/KeepingMatlab/article/details/136335074

智能推荐

leetcode 172. 阶乘后的零-程序员宅基地

文章浏览阅读63次。题目给定一个整数 n,返回 n! 结果尾数中零的数量。解题思路每个0都是由2 * 5得来的,相当于要求n!分解成质因子后2 * 5的数目,由于n中2的数目肯定是要大于5的数目,所以我们只需要求出n!中5的数目。C++代码class Solution {public: int trailingZeroes(int n) { ...

Day15-【Java SE进阶】IO流(一):File、IO流概述、File文件对象的创建、字节输入输出流FileInputStream FileoutputStream、释放资源。_outputstream释放-程序员宅基地

文章浏览阅读992次,点赞27次,收藏15次。UTF-8是Unicode字符集的一种编码方案,采取可变长编码方案,共分四个长度区:1个字节,2个字节,3个字节,4个字节。文件字节输入流:每次读取多个字节到字节数组中去,返回读取的字节数量,读取完毕会返回-1。注意1:字符编码时使用的字符集,和解码时使用的字符集必须一致,否则会出现乱码。定义一个与文件一样大的字节数组,一次性读取完文件的全部字节。UTF-8字符集:汉字占3个字节,英文、数字占1个字节。GBK字符集:汉字占2个字节,英文、数字占1个字节。GBK规定:汉字的第一个字节的第一位必须是1。_outputstream释放

jeecgboot重新登录_jeecg 登录自动退出-程序员宅基地

文章浏览阅读1.8k次,点赞3次,收藏3次。解决jeecgboot每次登录进去都会弹出请重新登录问题,在utils文件下找到request.js文件注释这段代码即可_jeecg 登录自动退出

数据中心供配电系统负荷计算实例分析-程序员宅基地

文章浏览阅读3.4k次。我国目前普遍采用需要系数法和二项式系数法确定用电设备的负荷,其中需要系数法是国际上普遍采用的确定计算负荷的方法,最为简便;而二项式系数法在确定设备台数较少且各台设备容量差..._数据中心用电负荷统计变压器

HTML5期末大作业:网页制作代码 网站设计——人电影网站(5页) HTML+CSS+JavaScript 学生DW网页设计作业成品 dreamweaver作业静态HTML网页设计模板_网页设计成品百度网盘-程序员宅基地

文章浏览阅读7k次,点赞4次,收藏46次。HTML5期末大作业:网页制作代码 网站设计——人电影网站(5页) HTML+CSS+JavaScript 学生DW网页设计作业成品 dreamweaver作业静态HTML网页设计模板常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 明星、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 军事、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他 等网页设计题目, A+水平作业_网页设计成品百度网盘

【Jailhouse 文章】Look Mum, no VM Exits_jailhouse sr-iov-程序员宅基地

文章浏览阅读392次。jailhouse 文章翻译,Look Mum, no VM Exits!_jailhouse sr-iov

随便推点

chatgpt赋能python:Python怎么删除文件中的某一行_python 删除文件特定几行-程序员宅基地

文章浏览阅读751次。本文由chatgpt生成,文章没有在chatgpt生成的基础上进行任何的修改。以上只是chatgpt能力的冰山一角。作为通用的Aigc大模型,只是展现它原本的实力。对于颠覆工作方式的ChatGPT,应该选择拥抱而不是抗拒,未来属于“会用”AI的人。AI职场汇报智能办公文案写作效率提升教程 专注于AI+职场+办公方向。下图是课程的整体大纲下图是AI职场汇报智能办公文案写作效率提升教程中用到的ai工具。_python 删除文件特定几行

Java过滤特殊字符的正则表达式_java正则表达式过滤特殊字符-程序员宅基地

文章浏览阅读2.1k次。【代码】Java过滤特殊字符的正则表达式。_java正则表达式过滤特殊字符

CSS中设置背景的7个属性及简写background注意点_background设置背景图片-程序员宅基地

文章浏览阅读5.7k次,点赞4次,收藏17次。css中背景的设置至关重要,也是一个难点,因为属性众多,对应的属性值也比较多,这里详细的列举了背景相关的7个属性及对应的属性值,并附上演示代码,后期要用的话,可以随时查看,那我们坐稳开车了······1: background-color 设置背景颜色2:background-image来设置背景图片- 语法:background-image:url(相对路径);-可以同时为一个元素指定背景颜色和背景图片,这样背景颜色将会作为背景图片的底色,一般情况下设置背景..._background设置背景图片

Win10 安装系统跳过创建用户,直接启用 Administrator_windows10msoobe进程-程序员宅基地

文章浏览阅读2.6k次,点赞2次,收藏8次。Win10 安装系统跳过创建用户,直接启用 Administrator_windows10msoobe进程

PyCharm2021安装教程-程序员宅基地

文章浏览阅读10w+次,点赞653次,收藏3k次。Windows安装pycharm教程新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入下载安装PyCharm1、进入官网PyCharm的下载地址:http://www.jetbrains.com/pycharm/downl_pycharm2021

《跨境电商——速卖通搜索排名规则解析与SEO技术》一一1.1 初识速卖通的搜索引擎...-程序员宅基地

文章浏览阅读835次。本节书摘来自异步社区出版社《跨境电商——速卖通搜索排名规则解析与SEO技术》一书中的第1章,第1.1节,作者: 冯晓宁,更多章节内容可以访问云栖社区“异步社区”公众号查看。1.1 初识速卖通的搜索引擎1.1.1 初识速卖通搜索作为速卖通卖家都应该知道,速卖通经常被视为“国际版的淘宝”。那么请想一下,普通消费者在淘宝网上购买商品的时候,他的行为应该..._跨境电商 速卖通搜索排名规则解析与seo技术 pdf

推荐文章

热门文章

相关标签