赞
踩
粒子群优化算法(PSO:Particle swarm optimization)是一种进化计算技术。它的基本思想:通过群体中个体之间的协作和信息共享来寻找最优解。
PSO初始化为一群随机粒子(随机解),然后通过迭代找到最优解。在每一次的迭代中,粒子通过跟踪两个“极值”(pbest,gbest)来更新自己。在找到这两个最优值后,粒子通过下面的公式来更新自己的速度和位置。
1)初始化一群微粒(群体规模为N),包括随机位置和速度;
2)评价每个粒子的初始适应值;
3)将初始适应值作为当前每个粒子的最优值,并记录当前的位置作为局部最优位置;
4)将最佳初始适应值作为当前全局最优值,并记录当前位置;
5)依据上文提到的计算速度和位置公式进行计算(要注意最大速度限幅处理);
6)比较当前适应值与之前的适应值,如果更优则进行更新;
7)找到当前粒子群的全局最优;
8)重复5-7步直到达到最小误差或者达到最大迭代次数;
9)输出。
1)需要调整的参数少,原理简单,容易实现;
2)协同搜索,同时利用个体局部信息和群体全局信息进行指导搜索;
3)收敛速度快;
4)更容易飞跃局部最优信息。
1)算法局部搜索能力较差,搜索精度不高;
2)算法容易陷入局部最优,无法获取全局最优近似解。
最小二乘支持向量机是支持向量机的一种改进,它是将传统支持向量机中的不等式约束改为等式约束,且将误差平方和(SumSquaresError)损失函数作为训练集的经验损失,这样就把解二次规划问题转化为求解线性方程组问题,提高求解问题的速度和收敛精度。
最小二乘支持向量机MATLAB工具箱下载地址见参考文献[4],工具箱用于解决分类问题主要用到3个函数,trainlssvm函数用来训练建立模型,simlssvm函数用于预估模型,plotlssvm函数是工具箱的专用绘图函数。
LSSVM要求调整的参数有两个:gam和sig2。其中gam是正则化参数,决定了适应误差的最小化和平滑程度,sig2是RBF函数的参数。type有两种类型,一种是classfication,用于分类,一种是function estimation,用于函数回归。
PSO通过优化LSSVM的两个参数gam和sig2,寻找参数的最优组合,从而提高分类精度。
LSSVM工具箱的trainlssvm函数和simlssvm函数一般用于二分类问题,多分类问题则需要构造多个二分类器。LSSVM工具箱的code函数可以将多分类任务编码和解码为多个二分类器。
首先使用code函数对多分类问题进行编码,然后用trainlssvm函数和simlssvm函数分别对数据进行训练和测试,再使用code函数对测试结果进行解码。PSO优化LSSVM实现多分类的源代码见博文第四节的链接,分类的精确率能达到90%以上。
PSO优化LSSVM的MATLAB代码见地址:PSO-LSSVM的MATLAB代码
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。