【SVM分类】基于改进鲸鱼算法优化最小二乘支持向量机实现数据分类matlab代码
1 简介Mirjalili和Lewis在2016年从座头鲸的猎食行为中得到启示提出一种新的元启发式优化算法——鲸鱼优化算法。该算法仿照座头鲸的泡泡网觅食方法通过收缩包围、螺旋位置更新以及随机捕食行为捕猎如图1所示。通过模仿其觅食建立数学模型具体的寻优过程如下首先通过判断系数向量A是否在区间[–1,1]内若不在就采用搜索捕食的方式跳出当前包围圈若在就通过判断阈值p选择包围猎物还是狩猎行为。为了减少控制变量该算法只有位置向量去掉了速度向量所以使得算法的寻优能力得到增强。2 部分代码%% 普通 lssvmclearclcclose allformat compactaddpath LSSVMlab%% 加载数据load data_kjadeinputdata_kjade;output[1*ones(1,100) 2*ones(1,100) 3*ones(1,100) 4*ones(1,100) 5*ones(1,100) 6*ones(1,100) 7*ones(1,100) 8*ones(1,100) 9*ones(1,100) 10*ones(1,100) ];rand(seed,0)%% 随机取700为训练集 300为测试集[m,n]sort(rand(1,1000));m700;X1input(n(1:m),:);y1output(n(1:m),:);Xtinput(n(m1:end),:);ytoutput(n(m1:end),:);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%gam 81.6492 ;sig2 53.5081;[yc,codebook,old_codebook] code(y1,code_MOC);model initlssvm(X1,yc,c,gam,sig2,RBF_kernel);model trainlssvm(model);%% 测试集准确率Y simlssvm(model,Xt);predict_label code(Y,old_codebook,[],codebook);fprintf(1,Accuracy: %2.2f\n,100*sum(predict_labelyt)/length(yt));figurestem(yt)hold onplot(predict_label,*)xlabel(测试集样本编号)ylabel(输出标签)title(测试集分类输出)3 仿真结果4 参考文献[1]郑威迪等. 基于改进型鲸鱼优化算法和最小二乘支持向量机的炼钢终点预测模型研究. 电子学报 3(2019):7.博主简介擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真有科研问题可私信交流。部分理论引用网络文献若有侵权联系博主删除。