挺完整的一篇博客,这里转载记录一下。
原文链接:PSO-LSSVM算法及其MATLAB代码

一、PSO

1.概念

粒子群优化算法(PSO:Particle swarm optimization)是一种进化计算技术。它的基本思想:通过群体中个体之间的协作和信息共享来寻找最优解。

2.算法的原理和实现步骤

2.1算法原理

PSO初始化为一群随机粒子(随机解),然后通过迭代找到最优解。在每一次的迭代中,粒子通过跟踪两个“极值”(pbest,gbest)来更新自己。在找到这两个最优值后,粒子通过下面的公式来更新自己的速度和位置。

PSO算法的主要公式

2.2实现步骤

1)初始化一群微粒(群体规模为N),包括随机位置和速度;

2)评价每个粒子的初始适应值;

3)将初始适应值作为当前每个粒子的最优值,并记录当前的位置作为局部最优位置;

4)将最佳初始适应值作为当前全局最优值,并记录当前位置;

5)依据上文提到的计算速度和位置公式进行计算(要注意最大速度限幅处理);

6)比较当前适应值与之前的适应值,如果更优则进行更新;

7)找到当前粒子群的全局最优;

8)重复5-7步直到达到最小误差或者达到最大迭代次数;

9)输出。

3.算法的优缺点

3.1优点:

1)需要调整的参数少,原理简单,容易实现;

2)协同搜索,同时利用个体局部信息和群体全局信息进行指导搜索;

3)收敛速度快;

4)更容易飞跃局部最优信息。

3.2缺点:

1)算法局部搜索能力较差,搜索精度不高;

2)算法容易陷入局部最优,无法获取全局最优近似解。

二、LSSVM(最小二乘支持向量机)

1.LSSVM介绍

最小二乘支持向量机是支持向量机的一种改进,它是将传统支持向量机中的不等式约束改为等式约束,且将误差平方和(SumSquaresError)损失函数作为训练集的经验损失,这样就把解二次规划问题转化为求解线性方程组问题,提高求解问题的速度和收敛精度。

2.最小二乘支持向量机MATLAB工具箱

最小二乘支持向量机MATLAB工具箱下载地址见参考文献[4],工具箱用于解决分类问题主要用到3个函数,trainlssvm函数用来训练建立模型,simlssvm函数用于预估模型,plotlssvm函数是工具箱的专用绘图函数。

LSSVM要求调整的参数有两个:gam和sig2。其中gam是正则化参数,决定了适应误差的最小化和平滑程度,sig2是RBF函数的参数。type有两种类型,一种是classfication,用于分类,一种是function estimation,用于函数回归。

三、PSO优化LSSVM实现多分类

PSO通过优化LSSVM的两个参数gam和sig2,寻找参数的最优组合,从而提高分类精度。

LSSVM工具箱的trainlssvm函数和simlssvm函数一般用于二分类问题,多分类问题则需要构造多个二分类器。LSSVM工具箱的code函数可以将多分类任务编码和解码为多个二分类器。

首先使用code函数对多分类问题进行编码,然后用trainlssvm函数和simlssvm函数分别对数据进行训练和测试,再使用code函数对测试结果进行解码。PSO优化LSSVM实现多分类的源代码见参考文献[6],分类的精确率能达到90%以上。

参考文献

[1]粒子群优化算法(PSO)

[2]粒子群算法PSO详解

[3]MATLBA中最小二乘支持向量机原理+实例分析

[4]最小二乘支持向量机算法及工具

[5]PSO-LSSVM的matlab实现

[6]PSO-LSSVM的MATLAB代码

PSO-LSSVM算法及其MATLAB代码相关推荐

  1. 哈里斯鹰优化(HHO)算法(含MATLAB代码)

    先做一个声明:文章是由我的个人公众号中的推送直接复制粘贴而来,因此对智能优化算法感兴趣的朋友,可关注我的个人公众号:启发式算法讨论.我会不定期在公众号里分享不同的智能优化算法,经典的,或者是近几年提出 ...

  2. 直流电机,传递函数,模糊控制pid算法,matlab代码

    直流电机,传递函数,模糊控制pid算法,matlab代码 ID:1466674483342194夹竹丶桃

  3. 最短路径 Dijkstra算法的Matlab代码实现

    为了搞清楚最短路径的算法过程,自己编写代码实现dijkstra算法寻找路径 % 文件名:dijkstra.m % 时间:2020年9月12日 % 来源:https://blog.csdn.net/li ...

  4. 下料问题的列生成算法,matlab代码,简单易懂

    下料问题的列生成算法,matlab代码,简单易懂 ID:18300606016240721绿兔叽

  5. ncut算法matlab实现,ncut_multiscale_1_6 经典的图像分割算法 的Matlab代码。 238万源代码下载- www.pudn.com...

    文件名称: ncut_multiscale_1_6下载 收藏√  [ 5  4  3  2  1 ] 开发工具: matlab 文件大小: 587 KB 上传时间: 2015-04-17 下载次数: ...

  6. 粒子群算法组卷_粒子群(PSO)算法概念及代码实现

    粒子群算法的由来及思想 粒子群算法最早是由两名美国的科学家基于群鸟觅食,寻找最佳觅食区域的过程所提出来的,作为一种智能算法,PSO模拟的就是最佳决策的过程,鸟群觅食类似于人类的决策过程,想想在你做出选 ...

  7. matlab实现photoshop,photoshop图像滤镜——素描算法(含matlab代码)

    二.photoshop图像滤镜--素描算法 素描的算法,网络上有多种,但是效果并不是特别理想.熟悉photoshop的朋友都知道,把彩色图片打造成素描的效果仅仅需要几步操作:1.去色:2.复制去色图层 ...

  8. matlab 浮雕算法,photoshop图像滤镜——浮雕算法(含matlab代码)

    一.photoshop图像滤镜--浮雕算法 浮雕的算法是对图像的每一个点进行卷积处理,采用的矩阵如下 [100:00 0:00-1]: 假设原图像为X,处理后的图像为Y ,也就是说,对于坐标为(i,j ...

  9. 白鲸优化(BWO)算法(含MATLAB代码)

    先做一个声明:文章是由我的个人公众号中的推送直接复制粘贴而来,因此对智能优化算法感兴趣的朋友,可关注我的个人公众号:启发式算法讨论. 原文在这里:点一下 白鲸优化(BWO)算法: 白鲸优化(Belug ...

最新文章

  1. Tensorflow一些常用基本概念与函数(1)
  2. 关于perl中DBD for Oracle的安装
  3. java自动转换_java类型转换详解(自动转换和强制转换)
  4. d3.js 旋转图形_变化莫测的图形推理,你能解出几种?
  5. mybatis 详解(三)------入门实例(基于注解)
  6. app底部导航栏的设计模板素材
  7. 图像融合(五)-- 梯度金字塔
  8. VBA 下载图片到word
  9. 微信小程序下拉刷新在真机上不回缩问题的解决方法
  10. 【菜鸟小屁的成长日记】之ElasticSearch中的TimeStamp时间戳篇
  11. 快递柜项目,面向对象
  12. pdf文件删除空白页技巧介绍
  13. 荣耀笔记本开机黑屏错误怎么U盘重装系统教学分享
  14. 工具篇-sdkman-SDK管理利器
  15. WinRar去除弹窗广告的学习和研究
  16. easyCVR接入华为Vpaas(VCN/IVS) GB28181记录
  17. 开源配置管理系统的选择和搭建
  18. C Primer Plus第七章:控制
  19. FL Studio 21测试版更新、新功能和AI智能编曲插件
  20. 干掉QQ2009preview4的迷你首页广告

热门文章

  1. unity项目中使用BUGLY遇到的的几个问题
  2. 2019年清华自主招生部分试题
  3. Python [9] optparse模块生成命令行帮助信息
  4. 前端工程师的知识体系
  5. 校讯通近期爆发短信诈骗:取消不可能 那如何规范
  6. Hibernate Cascade 属性
  7. quartz分布式集群部署并且可视化配置job定时任务
  8. Spring Data JPA 教程(翻译)
  9. Java 代码的基本知识
  10. Python中的eval--字符串解析