Matlab实现基于麻雀算法优化支持向量机的数据分类预测。针对支持向量机( support vector machine,SVM) 的分类性能受自身参数选择影响较大的问题,提出了基于麻雀搜索算法( sparrow search algorithm,SSA) 优化SVM 的特征分类方法。利用麻雀搜索算法( SSA) 对支持向量机的惩罚参数( C) 与核参数( g) 进行优化,并构建SSA-SVM 模型。
- 麻雀搜索算法(Sparrow Search Algorithm, SSA)是于2020年提出的。SSA 主要是受麻雀的觅食行为和反捕食行为的启发而提出的。该算法比较新颖,具有寻优能力强,收敛速度快的优点。
- SVM是由模式识别中广义肖像算法(generalized portrait algorithm)发展而来的广义线性分类器,通过在SVM的算法框架下修改损失函数和优化问题可以得到其它类型的线性分类器。
麻雀搜索算法( sparrow search algorithm,SSA)是一种新颖的群体优化算法,它是受麻雀种群的觅食和反捕食行为启发,通过19 个标准测试函数验证SSA 算法在搜索精度,收敛速度,稳定性和避免局部最优值方面均优于现有算法。基于此,将SSA 算法应用到SVM 的参数选择中,以SVM 训练集分类准确率最高为优化目标,选择最优的惩罚因子和核参数,建立SSA-SVM 模型。


支持向量机( support vector machine,SVM) 是由Vapnik 教授提出的一种基于统计学方法的机器学习方法。SVM 是一种不同于神经网络的机器学习方法,尤其是对于小样本数据分类问题,SVM 有着出众的分类效果,SVM 的目的在于寻找一个最优超平面,使得不同数据最近分界面与超平面的距离最大。

( 1) 首先确定模型的输入、输出,确定目标输出值,建立训练、测试样本集。
( 2) 初始化麻雀搜索算法相关参数,包括种群规模、最大迭代次数,SVM 参数C、g。
( 3) 通过交叉验证,对训练样本进行分类,以交叉验证的准确率作为麻雀个体的适应度。保留最优的适应度值及位置信息。
( 4) 计算预警值,以预警值大小为依据。
( 6) 更新意识到危险的麻雀位置,处于种群外围的麻雀会向安全区域靠拢,处在种群中心的麻雀则随机行走以靠近别的麻雀。
( 7) 计算麻雀个体新位置的适应度值,将更新后的适应度值与原来的最优值进行比较,并更新全局最优信息。
( 8) 判断迭代次数是否满足终止条件,如不满足,则重复步骤( 3) ,反之则停止,输出最优参数,将测试集样本输入到最优的SVM 模型,输出诊断结果。
for i=1:size(SalpPositions,1)
SalpPositions= SalpPositions';
if i<=N/2
for j=1:1:dim
c2=rand();
c3=rand();
%%%%%%%%%%%%% % Eq. (3.1) in the paper %%%%%%%%%%%%%%
if c3<0.5
SalpPositions(j,i)=FoodPosition(j)+c1*((ub(j)-lb(j))*c2+lb(j));
else
SalpPositions(j,i)=FoodPosition(j)-c1*((ub(j)-lb(j))*c2+lb(j));
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
end
elseif i>N/2 && i<N+1
point1=SalpPositions(:,i-1);
point2=SalpPositions(:,i);
SalpPositions(:,i)=(point2+point1)/2; % % Eq. (3.4) in the paper
end
SalpPositions= SalpPositions';
end
for i=1:size(SalpPositions,1)
Tp=SalpPositions(i,:)>ub';Tm=SalpPositions(i,:);SalpPositions(i,:)=(SalpPositions(i,:).*(~(Tp+Tm)))+ub'.*Tp+lb'.*Tm;
SalpFitness(1,i)=fobj(SalpPositions(i,:));
if SalpFitness(1,i)<FoodFitness
FoodPosition=SalpPositions(i,:);
FoodFitness=SalpFitness(1,i);
end
end
Convergence_curve(l)=FoodFitness;

[1] Liu Lu,Wang Taiyong. Support vector machine optimization based
on artificial bee colony algorithm[J]. Journal of Tianjin University,
2011,44( 9) : 803-809.
[2] Xue J K, Shen B. A novel swarm intelligence optimization
approach: sparrow search algorithm[J]. Systems Science & Control
Engineering,2020,8: 22-34,