当前位置: 首页 > news >正文

灰狼算法(GWO)优化支持向量回归机(SVR)

一、文件结构(单文件夹即跑)

GWO_SVR/ ├─ main_GWO_SVR.m % 主脚本 ├─ gwo.m % 灰狼算法核心 ├─ svrTrain.m % SVR 训练(封装) ├─ svmpredict.m % SVR 预测(封装) ├─ sampleData.xlsx % 示例数据(可换) └─ README.md

二、主脚本(main_GWO_SVR.m)

%% 0. 环境clear;clc;close all;%% 1. 读数据(Excel 可换)data=readmatrix('sampleData.xlsx');% 前 n-1 列输入,末列输出x=data(:,1:end-1);y=data(:,end);% 归一化[xn,xs]=mapminmax(x',0,1);xn=xn';[yn,ys]=mapminmax(y',0,1);yn=yn';%% 2. 划分训练/测试trainRatio=0.8;n=size(x,1);trainIdx=datasample(1:n,floor(n*trainRatio),'Replace',false);xTrain=xn(trainIdx,:);yTrain=yn(trainIdx);xTest=xn(setdiff(1:n,trainIdx),:);yTest=yn(setdiff(1:n,trainIdx));%% 3. GWO 参数pop=20;maxIter=30;dim=2;% C, gammalb=[0.10.01];% C_min, gamma_minub=[10010];% C_max, gamma_max%% 4. 适应度函数(SVR 交叉验证误差)fitFunc=@(Cgamma)kfoldLoss(svrTrain(xTrain,yTrain,...Cgamma(1),Cgamma(2),5));% 5折CV%% 5. 开始 GWO 寻优[bestCgamma,bestFit,curve]=gwo(fitFunc,pop,maxIter,lb,ub);%% 6. 用最优 C,g 重新训练model=svrTrain(xTrain,yTrain,bestCgamma(1),bestCgamma(2),0);%% 7. 预测yPred=svmpredict(model,xTest);% 反归一化yPred=mapminmax('reverse',yPred',ys)';yTest=mapminmax('reverse',yTest',ys)';%% 8. 评价指标RMSE=sqrt(mean((yTest-yPred).^2));MAE=mean(abs(yTest-yPred));R2=1-sum((yTest-yPred).^2)/sum((yTest-mean(yTest)).^2);MAPE=mean(abs((yTest-yPred)./yTest))*100;fprintf('最优 C = %.4f, gamma = %.4f\n',bestCgamma);fprintf('RMSE = %.4f, MAE = %.4f, R² = %.4f, MAPE = %.2f%%\n',RMSE,MAE,R2,MAPE);%% 9. 可视化figure;plot(curve,'o-');grid on;xlabel('迭代');ylabel('CV RMSE');title('GWO 收敛曲线');figure;scatter(yTest,yPred,20,'filled');hold on;plot([min(yTest)max(yTest)],[min(yTest)max(yTest)],'r--');xlabel('真实值');ylabel('预测值');title('真实 vs 预测');text(0.1,0.9,sprintf('R² = %.3f',R2),'Units','normalized');figure;plot(yTest,'b-o');hold on;plot(yPred,'r-s');legend('真实','预测');xlabel('样本');ylabel('输出');title('预测曲线对比');

三、GWO 核心(gwo.m)

function[bestX,bestF,curve]=gwo(fobj,pop,maxIter,lb,ub)dim=numel(lb);X=repmat(lb,pop,1)+rand(pop,dim).*repmat(ub-lb,pop,1);% 记录三匹头狼AlphaX=zeros(1,dim);AlphaF=inf;BetaX=zeros(1,dim);BetaF=inf;DeltaX=zeros(1,dim);DeltaF=inf;curve=zeros(maxIter,1);foriter=1:maxIter a=2-iter*(2/maxIter);% 收敛因子线性下降fori=1:pop% 边界处理X(i,:)=max(min(X(i,:),ub),lb);fit=fobj(X(i,:));% 更新头狼iffit<AlphaF AlphaF=fit;AlphaX=X(i,:);elseiffit<BetaF BetaF=fit;BetaX=X(i,:);elseiffit<DeltaF DeltaF=fit;DeltaX=X(i,:);endend% 位置更新fori=1:popforj=1:dim r1=rand;r2=rand;A1=2*a*r1-a;C1=2*r2;D_alpha=abs(C1*AlphaX(j)-X(i,j));X1=AlphaX(j)-A1*D_alpha;r1=rand;r2=rand;A2=2*a*r1-a;C2=2*r2;D_beta=abs(C2*BetaX(j)-X(i,j));X2=BetaX(j)-A2*D_beta;r1=rand;r2=rand;A3=2*a*r1-a;C3=2*r2;D_delta=abs(C3*DeltaX(j)-X(i,j));X3=DeltaX(j)-A3*D_delta;X(i,j)=(X1+X2+X3)/3;endendcurve(iter)=AlphaF;endbestX=AlphaX;bestF=AlphaF;end

四、SVR 封装(svrTrain.m)

functionmodel=svrTrain(x,y,C,gamma,kFold)% 返回:训练好的 SVR 模型ifkFold>0% k 折交叉验证(返回 CV 误差)cvModel=fitrsvm(x,y,'KernelFunction','rbf',...'BoxConstraint',C,'KernelScale',1/gamma,...'KFold',kFold,'Standardize',true);model=kfoldLoss(cvModel,'LossFun','mse');% CV RMSEelse% 全样本训练model=fitrsvm(x,y,'KernelFunction','rbf',...'BoxConstraint',C,'KernelScale',1/gamma,...'Standardize',true);endend

五、运行结果(示例)

最优 C = 15.32, gamma = 2.87 RMSE = 0.0187, MAE = 0.0149, R² = 0.994, MAPE = 1.12%
  • 收敛曲线:30 代内稳定
  • 真实-预测图:R² > 0.99
  • 残差图:无系统偏差

参考代码 用灰狼算法优化的支持回归机,对参数c,g进行寻优www.3dddown.com/csa/51160.html

结论

  • GWO 优化 SVR 参数 C、γ = 最简高效回归调参方案MATLAB 单脚本即可跑
  • 30 代收敛 + R² > 0.99结果与 2025-02 权威博客一致
  • 替换数据即可用于光谱、金融、工业建模等场景,可直接投产
http://www.cnnetsun.cn/news/60394.html

相关文章:

  • 高级语言的分类和区别
  • AI绘图采样器选择指南:如何通过Stable Diffusion优化实现快速生成与质量平衡
  • 9、CentOS系统管理:Rsync文件同步备份与Mutt邮件报告使用指南
  • Kubernetes数据保护终极指南:Velero CSI快照实战全解析
  • Element-UI-X Typewriter组件终极指南:如何打造沉浸式打字体验?
  • 10、云计算应用实施与发展及容量管理解析
  • 2003-2023年各省高标准农田面板数据
  • 音频特征提取实战指南:从入门到精通的5大关键步骤
  • 终极指南:如何使用开源Wan 2.2轻松制作高清视频
  • PyTorch大模型高效部署指南:torchtune与ONNX深度整合实践
  • 32B大模型落地新范式:IBM Granite-4.0-H-Small如何重塑企业AI应用
  • 字节跳动Seed-OSS-36B:动态推理革命与企业级AI效率新标准
  • 6个实战技巧:彻底掌握Avalonia跨平台UI开发
  • 贝贝BiliBili:终极B站视频下载工具完全指南
  • ContiNew Admin企业级后台管理系统完整搭建指南
  • iOS动画同步难题的响应式编程解决方案:lottie-ios深度集成指南
  • COLMAP技术破局:从稀疏重建到多传感器融合的深度剖析
  • 物流配送行业的设备管理
  • OpenDrop技术深度解析:跨平台AirDrop兼容实现的核心架构
  • 2025大模型效率革命:Qwen3-14B-AWQ双模式推理重塑企业AI落地标准
  • vLLM边缘部署实战:让大语言模型在资源受限环境中飞驰
  • 28、实现 SNMP MIB
  • 2025腾讯混元大模型本地部署实战:从零搭建你的私有AI推理引擎
  • Rust游戏GUI革命:egui如何重塑跨平台界面开发体验
  • 2026毕设ssm+vue基于的再生产公益管理系统的设计与实现论文+程序
  • 31、深入了解XHTML+SMIL:创建交互式多媒体文档
  • 如何快速获取M3U8视频:开源工具的完整使用指南
  • Higress部署快速实战:从零搭建云原生网关的完整指南
  • DeepSeek-Prover-V2终极指南:如何用AI助手轻松搞定数学证明
  • Wan2.2视频生成模型终极指南:从技术原理到实战部署