您现在的位置:首页 >> 机器学习 >> 内容

基于PSO粒子群优化的SVM(PSO-SVM)的短期电力负荷预测matlab仿真

时间:2023/1/5 20:23:44 点击:

  核心提示:A185,包括程序操作录像+16000字word论文...

1.完整项目描述和程序获取

>面包多安全交易平台:https://mbd.pub/o/bread/Y52cm59r

>如果链接失效,可以直接打开本站店铺搜索相关店铺:

点击店铺

>如果链接失效,程序调试报错或者项目合作可以加微信或者QQ联系。

2.部分仿真图预览




3.算法概述

        支持向量机(support vector machines, SVM)是二分类算法,所谓二分类即把具有多个特性(属性)的数据分为两类,目前主流机器学习算法中,神经网络等其他机器学习模型已经能很好完成二分类、多分类,学习和研究SVM,理解SVM背后丰富算法知识,对以后研究其他算法大有裨益;在实现SVM过程中,会综合利用之前介绍的一维搜索、KKT条件、惩罚函数等相关知识。本篇首先通过详解SVM原理,后介绍如何利用python从零实现SVM算法。

4.部分源码

ParticleScope=[0.1,150;

               0.1,10];

ParticleSize=2;

SwarmSize=20;

LoopCount=10;

opt=zeros(LoopCount,3);

MeanAdapt=zeros(1,LoopCount);

OnLine=zeros(1,LoopCount);

OffLine=zeros(1,LoopCount);

%控制显示2维以下粒子维数的寻找最优的过程

% DrawObjGraphic(ParticleSize,ParticleScope,AdaptFunc(XX,YY));

[ParSwarm,OptSwarm]=InitSwarm(SwarmSize,ParticleSize,ParticleScope);

%开始更新算法的调用

for k=1:LoopCount

%显示迭代的次数:

disp('----------------------------------------------------------')

TempStr=sprintf('第 %g次迭代',k);

disp(TempStr);

disp('----------------------------------------------------------')

%在测试函数图形上绘制初始化群的位置

 %if 2==ParticleSize

 % for ParSwarmRow=1:SwarmSize

  %  stem3(ParSwarm(ParSwarmRow,1),ParSwarm(ParSwarmRow,2),ParSwarm(ParSwarmRow,5),'r.','markersize',8);

  %end

 %end

%暂停让抓图

% disp('开始迭代,按任意键:')

 %pause

%调用一步迭代的算法

[ParSwarm,OptSwarm]=BaseStepPso(ParSwarm,OptSwarm,ParticleScope,0.9,0.4,LoopCount,k);

% if 2==ParticleSize

 % for ParSwarmRow=1:SwarmSize

 %   stem3(ParSwarm(ParSwarmRow,1),ParSwarm(ParSwarmRow,2),ParSwarm(ParSwarmRow,5),'r.','markersize',8);

 % end

 %end

 

t=OptSwarm(SwarmSize+1,1);

u=OptSwarm(SwarmSize+1,2);

YResult=AdaptFunc(t,u);

str=sprintf('%g步迭代的最优目标函数值%g',k,YResult);

disp(str);

%记录每一步的平均适应度

MeanAdapt(1,k)=mean(ParSwarm(:,2*ParticleSize+1));

end

%for循环结束标志

%记录最小与最大的平均适应度

MinMaxMeanAdapt=[min(MeanAdapt),max(MeanAdapt)];

%计算离线与在线性能

for k=1:LoopCount

 OnLine(1,k)=sum(MeanAdapt(1,1:k))/k;

 OffLine(1,k)=max(MeanAdapt(1,1:k));

end

for k=1:LoopCount

   OffLine(1,k)=sum(OffLine(1,1:k))/k;

end

A185

作者:我爱C编程 来源:我爱C编程
本站最新成功开发工程项目案例
相关文章
相关评论
发表我的评论
  • 大名:
  • 内容:
本类固顶
  • 没有
  • FPGA/MATLAB商业/科研类项目合作(www.store718.com) © 2025 版权所有 All Rights Reserved.
  • Email:1480526168@qq.com 站长QQ: 1480526168