最小二乘支持向量机--LSSVM分类及MATLAB代码实现

最小二乘支持向量机–LSSVM分类及MATLAB代码实现

1. LSSVM算法原理

1.1 支持向量机 (SVM)

目标:支持向量机算法通过在解空间中求解出一个最优超平面,使得解空间的样本能够被此超平面正确分开。最优超平面的几何表示如下图所示,图中实线即为最优的超平面。

在这里插入图片描述
数学模型:

假设存在 m m m n n n维的样本 { x k , y k } , y k ∈ { − 1 , 1 } , x k ∈ R n , k = 1 , 2 , 3 ⋯ m \left\{x_{k}, y_{k}\right\}, y_{k} \in\{-1,1\}, x_{k} \in R^{n},k=1,2,3 \cdots m {xk,yk},yk{1,1},xkRn,k=1,2,3m, 则SVM算法的目标函数和不等式约束如下:

min ⁡ W , b , ζ J P ( W , ζ ) = 1 2 W T W + c ∑ k = 1 m ζ k , ( 1 ) \min _{\boldsymbol{W},b, \zeta} J_{P}(\boldsymbol{W}, \zeta)=\frac{1}{2} \boldsymbol{W}^{\mathrm{T}} \boldsymbol{W}+c \sum_{k=1}^{m} \zeta_{k}, (1) W,b,ζminJP(W,ζ)=21WTW+ck=1mζk,(1)

 s.t.  y k ⩾ W T φ ( x k ) + b + ζ k , ( 2 ) \text { s.t. } y_{k} \geqslant \boldsymbol{W}^{\mathrm{T}} \varphi\left(x_{k}\right)+b+\zeta_{k} , (2)  s.t. ykWTφ(xk)+b+ζk,(2)
式中, W W W为超平面的法向量, ζ \zeta ζ为预测误差值, φ ( x k ) \varphi\left(x_{k}\right) φ(xk)为核函数, c c c为惩罚因子, b b b为常量。

问题:不等式约束的存在,使得SVM算法求解较为困难。

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

LSSVM算法对 (1) 和 (2) 式转换为如下等式,来提高求解问题的速度。

min ⁡ W , b , e J P ( W , e ) = 1 2 W T W + r 2 ∑ k = 1 m e k , ( 3 ) \min _{\boldsymbol{W}, b, e} J_{P}(\boldsymbol{W}, e)=\frac{1}{2} W^{\mathrm{T}} \boldsymbol{W}+\frac{r}{2} \sum_{k=1}^{m} e_{k}, (3) W,b,eminJP(W,e)=21WTW+2rk=1mek,(3)

 s.t.  y k = W T φ ( x k ) + b + e k , ( 4 ) \text { s.t. } y_{k}=\boldsymbol{W}^{\mathrm{T}} \varphi\left(x_{k}\right)+b+e_{k}, (4)  s.t. yk=WTφ(xk)+b+ek,(4)

式中, r r r为预测误差的惩罚因子, e e e为SVM预测误差 ζ \zeta ζ的平方, 即 e = ζ 2 e=\zeta^{2} e=ζ2

通过构造拉格朗日变换多项式,进行如下变换:
L ( W , b , e , α ) = J P ( W , e ) − ∑ k = 1 m α k [ W T φ ( x k ) + b + e k − y k ] , ( 5 ) L(\boldsymbol{W}, b, e, \alpha)=J_{P}(\boldsymbol{W}, e)-\sum_{k=1}^{m} \alpha_{k}\left[\boldsymbol{W}^{\mathrm{T}} \varphi\left(x_{k}\right)+b+e_{k}-y_{k}\right], (5) L(W,b,e,α)=JP(W,e)k=1mαk[WTφ(xk)+b+ekyk],(5)

对式 (5) 中的 W , b , e k , α k W, b, e_{k}, \alpha_{k} W,b,ek,αk分别求偏导并令导数等于0,即可得到线性方程组,解之可得LSSVM算法的计算公式 (6)。

y ( x ) = ∑ k = 1 m α k K ( x , x k ) + b , ( 6 ) y(x)=\sum_{k=1}^{m} \alpha_{k} K\left(x, x_{k}\right)+b,(6) y(x)=k=1mαkK(x,xk)+b,(6)

式中, K ( x , x k ) K\left(x, x_{k}\right) K(x,xk)为核函数,可取径向基核, 多项式核, 线性核等。

2. LSSVM工具箱安装

LS_SVMlab工具箱可用于解决最小二乘支持向量机的分类以及回归问题。工具箱获取地址为:

http://www.esat.kuleuven.be/sista/lssvmlab

在这里插入图片描述
下载工具箱后,将其添加到MATLAB的工作搜索路径中即可。添加命令如下:

addpath('LSSVMlabv1_8_R2009b_R2011a')

值得注意的是,使用上述命令添加工具箱后,建议在共同的母文件夹下运行代码。

3. LSSVM分类案例

在安装了LSSVM工具箱后,可以用一个简单的二分类案例,检查是否安装成功。代码如下:

% 初始化程序
clear, clc
close all

% 创建数据
X = 2.*rand(30,2)-1;
Y = sort(randi([1,2],30,1));

% 设置参数与训练模型
% 'c' 表示分类,gam与sig2内核平方参数分别为10, 0.5
% 核函数采用 RBF径向基函数
gam = 10;
sig2 = 0.5;
[alpha,b] = trainlssvm({X,Y,'c',gam,sig2,'RBF_kernel'});
Y_hat = simlssvm({X,Y,'c',gam,sig2,'RBF_kernel','preprocess'},{alpha,b},X);
disp('真实值  预测值')
disp([Y, Y_hat])

%绘图
figure('Units' , 'normalized' , ...
    'name' , '预测值类型与实际类型的对比' ,...
    'position' , [0.25 0.25 0.5 0.5] , ...
    'nextplot' , 'add');
plot(1: 30, Y, 'bo', 1:30, Y_hat, 'r*', 'linewidth', 1.0)
xlabel('样本编号'); ylabel('类型'); legend('期望类型' , '预测类型')
title({'LS-SVM模型训练结果' , ['Accuracy = ', num2str( sum(Y == Y_hat)/30 * 100 ), '%']})

如果添加路径成功,则运行得到以下图像:

在这里插入图片描述

4. MATLAB代码

优快云下载代码

https://download.youkuaiyun.com/download/qq_57971471/87730279

### GWO-PSO-LSSVM 算法原理 #### 1. 最小二乘支持向量机 (LSSVM) 最小二乘支持向量机是一种改进的支持向量机方法,通过引入等式约束代替不等式约束简化求解过程。该模型的目标是最小化结构风险,在回归和分类任务中表现出色[^1]。 对于给定的数据集 \((\mathbf{x}_i, y_i)\),\(i=1,\ldots,N\),其中 \(\mathbf{x}_i\) 是输入特征向量,\(y_i\) 是目标变量,LSSVM 的优化问题可以表示为: \[ \min_{w,b,e} \frac{1}{2}\| w \| ^2 + \gamma \sum_{i=1}^{N} e_i^2 \] 受制于条件 \(y_i = (\mathbf{w}^\top \phi(\mathbf{x}_i)+b) +e_i\) 和 \(e_i\) 表示误差项;\(\gamma>0\) 控制正则化的程度;\(\phi(\cdot)\) 将原始空间映射到高维特征空间。 为了便于理解和支持核函数的应用,通常采用拉格朗日乘数法转换成对偶形式并利用核技巧解决实际应用中的非线性问题。 #### 2. 灰狼优化器 (GWO) 灰狼优化(Grey Wolf Optimizer, GWO)模拟自然界中灰狼的社会等级制度及其捕猎行为来进行全局寻优。群体内的个体分为四个主要角色:α、β、δ 和 ω,分别代表领导者和其他成员。这些角色会动态变化以适应环境的变化。 在每次迭代过程中,候选解决方案根据位置更新公式调整自己相对于三个最佳代理的位置,即 α、β 和 δ: \[ \mathbf{X}(t+1)=\mathbf{X}_{\alpha}-A_1 \odot D_\alpha+\mathbf{X}_{\beta}-A_2 \odot D_\beta+\mathbf{X}_{\delta}-A_3 \odot D_\delta \] 这里 \(D_\alpha=\left|\mathbf{C}_1 \odot \mathbf{X}_{\alpha}(t)-\mathbf{X}(t)\right|\), 同样适用于其他两个距离计算; 而系数矩阵 \(A=(2a \times r_1-a)\) 及 \(C=2r_2\) 中参数 a 随着时间逐渐减小,r1 和 r2 则是从区间 [0,1] 上随机抽取的数值. #### 3. 粒子群优化(PSO) 粒子群优化(Particle Swarm Optimization, PSO)模仿鸟类觅食的行为模式设计而成的一种进化算法。每个潜在解被称为“粒子”,它们在多维搜索空间内飞行寻找最优值。每个粒子都有自己的速度决定其移动方向,并依据个人经验和同伴的经验不断修正轨迹。 设第 i 个粒子的速度记作 vi(t),当前位置记作 xi(t),那么下一次时刻 t+1 更新规则如下所示: \[ v_i(t+1)=wv_i(t)+c_1r_1(pbest_i-x_i(t))+c_2r_2(gbest-x_i(t)) \] \[ x_i(t+1)=x_i(t)+v_i(t+1) \] 此处 pbest_i 表达的是目前为止找到的最佳局部位置,gbest 对应整个种群里最好的历史记录;权重因子 w 称之惯性权衡当前状态的影响力度;c1,c2 分别是认知和社会学习因素;r1,r2 属于独立同分布 U[0,1]. #### 4. 组合策略——GWO-PSO-LSSVM 组合后的 GWO-PSO-LSSVM 方法综合运用上述两种元启发式算法的优点来提升 LSSVM 参数的选择效率与质量。具体来说,先用 GWO 进行粗略探索获得较佳初始范围,再借助 PSO 实现精细调节直至收敛至满意的结果。此混合机制有助于克服单一算法可能存在的早熟现象以及提高最终预测性能。 ```matlab % MATLAB代码实现框架示意 function [model, bestParams] = gwopso_lssvm(trainData, testData) % 初始化种群... while not converged do for each wolf in population updatePositionUsingGWO(); evaluateFitness(); end selectTopSolutionsAsParticles(); for each particle in particles updateVelocityAndPositionUsingPSO(); refineParametersOfLSSVM(); assessModelPerformanceOnValidationSet(); end recordBestSolutionFoundSoFar(); end trainFinalModelWithOptimizedHyperparameters(bestParams); end ```
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CJ-leaf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值