💥💥💥💥💥💥💞💞💞💞💞💞💞💞欢迎来到海神之光博客之家💞💞💞💞💞💞💞💞💥💥💥💥💥💥
✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进;
🍎个人主页:海神之光
🏆代码获取方式:
海神之光Matlab王者学习之路—代码获取方式
⛳️座右铭:行百里者,半于九十。
更多Matlab信号处理仿真内容点击👇
①Matlab信号处理 (进阶版)
②付费专栏Matlab信号处理(初级版)
⛳️关注优快云海神之光,更多资源等你来!!
⛄一、贝叶斯优化支持向量机简介
1 支持向量机
SVM的基本思想是结构风险最小化, 通过核函数将数据从原始特征空间映射到高维特征空间, 使线性内积运算非线性化, 然后在高维特征空间建立使分类间隔最大化的最优超平面。 惩罚因子C和RBF核函数参数γ是SVM中两个重要的参数。 惩罚因子C>0, C越大对错误分类的惩罚越大, 但容易出现过拟合; C越小则对错误分类的惩罚减小, 模型的复杂度降低, 容易出现欠拟合。 γ决定数据映射到新特征空间后的分布, γ越小, 支持向量越多, 模型平滑效应增大, 容易欠拟合; γ越大, 支持向量越少, 对未知样本分类效果很差, 模型容易过拟合。 支持向量的个数影响模型训练与预测的速度, 因此在使用SVM建立判别模型时, 惩罚参数C和核函数参数γ的选择至关重要。
2 贝叶斯优化
SVM模型参数C和γ与模型性能之间呈现黑箱特点, 即模型的性能与参数C和γ之间无法使用表达式描述, 只能根据通过遍历离散的自变量取值得到最优SVM模型。 贝叶斯优化是一种十分高效的全局优化算法, 主要用于机器学习调参, 贝叶斯优化是一种不需要计算导数的系统化调优算法, 采用高斯过程建立概率代理模型, 考虑之前的参数信息, 不断更新先验, 使用采集函数来确定下一个评估点, 可以在较短的时间内确定最佳参数。 概率代理模型和采集函数是贝叶斯优化算法的两个核心组件。 高斯过程是随机变量的集合, 用以代替目标优化函数。 在本研究中, 高斯过程用于优化的SVM的参数组合, 高斯过程的表达式如式(1)
常见的超参数优化算法包括网格搜索、 遗传算法, 这些算法除了非常耗时之外, 在遍历下一个离散参数时不考虑之前的参数信息, 针对非凸问题容易陷入局部最优。 而贝叶斯优化侧重于减少评估代价, 迭代次数少, 速度快, 而且考虑之前的参数信息, 针对非凸问题不易陷入局部最优。 本研究选择贝叶斯优化作为SVM模型的参数寻优算法。
贝叶斯优化算法的过程如下:
(1) 在SVM模型的C和γ的设定搜索范围中随机选取n0个采样点, 以十折交叉验证的平均测试准确率为目标函数f, 模型的不同参数组合作为自变量x, 构成代理模型框架, 得到目标函数的初始分布和采样点集D;
(2) 通过最大化采集函数选择下一个采样点xt, 得到采样点函数值f(xt);
(3) 将新的采样点[xt, f(xt)]添加到采样点集D中, 更新高斯过程代理模型, 使得代理模型更加贴合目标函数的分布;
(4) 设定一个最大迭代次数, 当迭代次数达到最大次数时, 停止算法迭代, 输出最优采样点以及对应的目标函数最优值, 即SVM模型的最优参数C和γ。
⛄二、部分源代码
function [BestCVaccuracy,Bestc,Bestg,ga_option] = gaSVMcgForClass(train_label,train_data,ga_option)
%% 参数初始化
if nargin == 2
ga_option = struct(‘maxgen’,100,‘sizepop’,20,‘ggap’,0.9,…
‘cbound’,[1e-3 1e3],‘gbound’,[2^-5 2^5],‘v’,5);
end
% maxgen:最大的进化代数,默认为200,一般取值范围为[100,500]
% sizepop:种群最大数量,默认为20,一般取值范围为[20,100]
% cbound = [cmin,cmax],参数c的变化范围,默认为(0,100]
% gbound = [gmin,gmax],参数g的变化范围,默认为[0,1000]
% v:SVM Cross Validation参数,默认为5
%%
MAXGEN = ga_option.maxgen;
NIND = ga_option.sizepop;
NVAR = 2;
PRECI = 20;
GGAP = ga_option.ggap;
trace = zeros(MAXGEN,2);
FieldID = …
[rep([PRECI],[1,NVAR]);[ga_option.cbound(1),ga_option.gbound(1);ga_option.cbound(2),ga_option.gbound(2)]; …
[1,1;0,0;0,1;1,1]];
Chrom = crtbp(NIND,NVAR*PRECI);
gen = 1;
v = ga_option.v;
BestCVaccuracy = 0;
Bestc = 0;
Bestg = 0;
%%
cg = bs2rv(Chrom,FieldID);
for nind = 1:NIND
cmd = ['-v ‘,num2str(v),’ -c ‘,num2str(cg(nind,1)),’ -g ',num2str(cg(nind,2))];
ObjV(nind,1) = libsvmtrain(train_label,train_data,cmd);
end
[BestCVaccuracy,I] = max(ObjV);
Bestc = cg(I,1);
Bestg = cg(I,2);
%%
while 1
FitnV = ranking(-ObjV);
SelCh = select('sus',Chrom,FitnV,GGAP);
SelCh = recombin('xovsp',SelCh,0.7);
SelCh = mut(SelCh);
cg = bs2rv(SelCh,FieldID);
for nind = 1:size(SelCh,1)
cmd = ['-v ',num2str(v),' -c ',num2str(cg(nind,1)),' -g ',num2str(cg(nind,2))];
ObjVSel(nind,1) = libsvmtrain(train_label,train_data,cmd);
end
[Chrom,ObjV] = reins(Chrom,SelCh,1,1,ObjV,ObjVSel);
if max(ObjV) <= 50
continue;
end
[NewBestCVaccuracy,I] = max(ObjV);
cg_temp = bs2rv(Chrom,FieldID);
temp_NewBestCVaccuracy = NewBestCVaccuracy;
if NewBestCVaccuracy > BestCVaccuracy
BestCVaccuracy = NewBestCVaccuracy;
Bestc = cg_temp(I,1);
Bestg = cg_temp(I,2);
end
if abs( NewBestCVaccuracy-BestCVaccuracy ) <= 10^(-2) && ...
cg_temp(I,1) < Bestc
BestCVaccuracy = NewBestCVaccuracy;
Bestc = cg_temp(I,1);
Bestg = cg_temp(I,2);
end
trace(gen,1) = max(ObjV);
trace(gen,2) = sum(ObjV)/length(ObjV);
gen = gen+1;
if gen <= MAXGEN/2
continue;
end
if BestCVaccuracy >=80 && ...
( temp_NewBestCVaccuracy-BestCVaccuracy ) <= 10^(-2)
break;
end
if gen == MAXGEN
break;
end
end
gen = gen -1;
%%
figure;
hold on;
trace = round(trace10000)/10000;
plot(trace(1:gen,1),'r-',‘LineWidth’,1.5);
plot(trace(1:gen,2),‘o-’,‘LineWidth’,1.5);
legend(‘最佳适应度’,‘平均适应度’);
xlabel(‘进化代数’,‘FontSize’,12);
ylabel(‘适应度’,‘FontSize’,12);
axis([0 gen 0 100]);
grid on;
axis auto;
line1 = ‘适应度曲线Accuracy[GAmethod]’;
line2 = [‘(终止代数=’, …
num2str(gen),‘,种群数量pop=’, …
num2str(NIND),‘)’];
line3 = [‘Best c=’,num2str(Bestc),’ g=‘,num2str(Bestg), …
’ CVAccuracy=’,num2str(BestCVaccuracy),‘%’];
title({line1;line2;line3},‘FontSize’,12);
⛄三、运行结果
⛄四、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1]冯瑞杰,陈争光,衣淑娟.基于贝叶斯优化的SVM玉米品种鉴别研究[J].光谱学与光谱分析. 2022,42(06)
3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除
🍅 仿真咨询
1 各类智能优化算法改进及应用
生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化
2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断
3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知
4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化
5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配
6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化
7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化
8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置
9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长
10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合