【风电功率预测】海洋捕食算法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

智能推荐

系统安装:VS2019+QT5.15+MySql安装与配置_vsqt连接mysql-程序员宅基地

文章浏览阅读2.2k次。db.setHostName("localhost"); //设置为本地主机 db.setDatabaseName("stu_db"); //选择数据库名称,提前建好 db.setUserName("root"); //设置用户名 db.setPassword("root");//设置密码,此密码要与安装mysql时设置的密码一致..._vsqt连接mysql

Windows系统diskpart删除U盘分区_windows cmd删除u盘分区-程序员宅基地

文章浏览阅读3.3k次,点赞2次,收藏5次。描述有些清空下,比如U盘制作Ubuntu18.04的桌面镜像事,U盘会因为文件系统写入问题变成2MB左右。回复的话需要重新分区。微软Windows提供了diskpart管理磁盘的工具,基本简单好用方法已管理员打开cmd,执行diskpart命令,进入diskpart键入list disk查看磁盘列表选择U盘(磁盘号),删除分区磁盘管理工具为U盘新建分区,即可解..._windows cmd删除u盘分区

Duwamish7资料收集_duwamish7论文-程序员宅基地

文章浏览阅读333次。Duwamish7资料收集Duwamish深入剖析-结构篇:http://www.cnblogs.com/qiuyun/archive/2007/09/18/897815.html Duwamish架构分析篇:http://hi.baidu.com/wanglianbin/blog/item/c8f26e60a0c6e344eaf8f8a8.html_duwamish7论文

物料分类新增&更新_inv_item_category_pub.create_category-程序员宅基地

文章浏览阅读2.4k次。--新增INV_ITEM_CATEGORY_PUB.Create_Category ( p_api_version IN NUMBER, p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_FALSE, p_commit IN VARCHAR2 DEFAULT FND_API.G__inv_item_category_pub.create_category

nvm介绍、nvm下载安装及使用-程序员宅基地

文章浏览阅读10w+次,点赞190次,收藏1.2k次。一、nvm介绍 在工作中,我们可能同时在进行2个或者多个不同的项目开发,每个项目的需求不同,进而不同项目必须依赖不同版本的NodeJS运行环境,这种情况下,对于维护多个版本的node将会是一件非常麻烦的事情,nvm就是为解决这个问题而产生的,他可以方便的在同一台设备上进行多个node版本之间切换。二、nvm下载安装及使用2.1 nvm下载安装包下载地址:https://github.com/coreybutler/nvm-windows/releases,windows系统下载..._nvm

安装rvm 导公钥出错gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3-程序员宅基地

文章浏览阅读4.3k次。[root@master 6379]# gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3gpg: 已创建目录‘/root/.gnupg’gpg: 新的配置文件‘/root/.gnupg/gpg.conf’已建立gpg: 警告:在‘/root/.gnupg/gpg...._gpg --keyserver hkp://keys.gnupg.net --recv-keys 409b6b1796c275462a170311380

随便推点

【Bluetooth|蓝牙开发】二、蓝牙开发入门-程序员宅基地

文章浏览阅读7.2k次,点赞12次,收藏63次。蓝牙,是一种利用低功率无线电,支持设备短距离通信的无线电技术,能在包括移动电话、PDA、无线耳机、笔记本电脑、相关外设等众多设备之间进行无线信息交换,蓝牙工作在全球通用的2.4GHz ISM(即工业、科学、医学)频段,使用IEEE802.11协议。_蓝牙开发

php学生智慧宿舍寝室管理系统_php智慧公寓管理系统-程序员宅基地

文章浏览阅读75次。学生:本系统采用phpstudy开发平台,后端采用PHP和oracle数据库进行开发,开发工具为HBuilder。学生入住管理: 用户基本信息(增删改查)专业班级管理(增删改查)宿舍楼及宿舍管理(增删改查)人员管理:管理员增删改查,修改密码。报修管理:查询 我要报修 我的报修。电费管理模块:电费缴纳,电费查询。寝室调换管理:(寝室调换查询)报修管理:报修查询,报修处理。寝室调换管理:(增删查)水电管理:(增删改查)通知公告(增删改查)迁出管理:(增删查)缺勤管理:(增删查)_php智慧公寓管理系统

r语言的runmed函数_R实战 第五篇:常用函数的用法-程序员宅基地

文章浏览阅读713次。Basic包是R语言预装的开发包,包含了常用的数据处理函数,可以对数据进行简单地清理和转换,也可以在使用其他转换函数之前,对数据进行预处理,必须熟练掌握常用的数据处理函数。一,合并向量函数append()用于修改合并向量,可以把两个向量合并为一个:append(x, values, after = length(x))例如:从一个向量的指定位置处,插入另一个向量:> append(1:5, ..._r语言调用"run_model"这个函数

oracle事物的特征,Oracle 事务特征 管理 读取详解-程序员宅基地

文章浏览阅读137次。本文章总结了关于Oracle事务介绍了事务特征 事务管理 事务读三种用法与举实例说明,有需要了解的朋友可以参考一下本文章。本文章总结了关于Oracle事务介绍了事务特征 事务管理 事务读三种用法与举实例说明,有需要了解的朋友可以参考一下本文章。Oracle 事务的特征 ACID,指事务正确执行的四个基本要素的缩写.包含:原子性(Atomicity)、一致性(Consistency)、隔离性(..._oracle 如何加入特征

php mysql 图片上传_使用PHP + 阿里云(Linux服务器) + MySql 实现图片上传功能-程序员宅基地

文章浏览阅读282次。最近在做一个电商的项目,里面有个上传头像的功能.要求可以上传jpg,png,gif等常见图片格式; 于是想到了阿里云服务器存储图片,同时php操作mysql的方法;准备工作:需要准备以下php文件:1.uploadImage.php(处理图片上传,遵循驼峰命名法)--->在uploadImage.php文件中会把用户本地的图片提交到服务器,并把用户上传的图片的路径拼接上服务器的ip地址..._phpstudy的mysql怎么上传图片

云计算Paas(docker)基本环境安装_paas镜像文件-程序员宅基地

文章浏览阅读2.1k次,点赞3次,收藏12次。1,Docker 服务的架构图2,Docker 平台组成3,网络说明设备名:Server 节点主要作为系统的运行指令的发送节点。server:10.0.6.80Client 节点主要为服务运行的节点,可以使用一个或者多个均可。client1:10.0.6.81client2:10.0.6.82Registry 节点主要作为系统所有的运行的镜像仓库节点。registr..._paas镜像文件

推荐文章

热门文章

相关标签