基于麻雀搜索算法优化的支持向量机回归预测-附代码
基于麻雀搜索算法优化的支持向量机预测及其MATLAB代码实现
文章目录
- 基于麻雀搜索算法优化的支持向量机预测及其MATLAB代码实现
- 1. 基于麻雀搜索算法优化的支持向量机预测简介
- 1.1 支持向量机回归预测简介
- 1.2 麻雀搜索算法简介
- 2. 参数优化数学模型
- 3. 基于麻雀搜索算法优化的支持向量机回归预测模型构建
- 4. SSA-SVR回归预测模型的参数设置
- 5. 运行结果
- 6. MATLAB代码
1. 基于麻雀搜索算法优化的支持向量机预测简介
1.1 支持向量机回归预测简介
支持向量回归(Support Vector Regression,SVR)的基本思想:先通过核函数(如径向基RBF函数)将非线性数据映射到高维空间使数据变得线性可分,再采用结构风险最小化的原则来处理数据。对于小样本的预测问题,采用SVR模型具有较好的效果。
1.2 麻雀搜索算法简介
麻雀搜索算法(Sparrow Search Algorithm, SSA)是一种较新的群体智能优化算法,来源于麻雀觅食与逃避捕食者的行为。麻雀在捕食行为中分为发现者与加入者两个部分,分别负责提供觅食方向与追随食物来源。麻雀搜索算法具有较好的局部搜索能力。麻雀搜索算法原理和建模步骤参考:麻雀搜索算法优化BP神经网络预测-附代码
2. 参数优化数学模型
在使用支持向量机预测SVR进行建模时,惩罚参数C与核参数g对模型的预测性能有着重要的影响。惩罚参数C用于权衡损失的权重,核参数g影响核函数的径向作用范围,决定训练样本数据的范围和分布特性。选用均方误差(Mean Square Error,MSE)评价适应度函数,计算公式为:
MSE=1n∑i=1n∣Yi−Y^i∣2M S E=\sqrt{\frac{1}{n} \sum_{i=1}^{n}\left|Y_{i}-\hat{Y}_{i}\right|^{2}} MSE=n1i=1∑n∣∣∣Yi−Y^i∣∣∣2
注:采用麻雀搜索算法对支持向量机分类模型进行参数优化时,可采用交叉验证的最佳准确率作为适应度函数,优化模型的步骤与回归预测相同。
3. 基于麻雀搜索算法优化的支持向量机回归预测模型构建
1)读取数据,进行数据预处理,并构建SVR模型。
2)初始化麻雀种群参数,确定C、g的取值范围。
3)确定麻雀搜索算法的适应度函数,将其值作为麻雀搜寻到的食物多少。依据麻雀搜索算法的原理,寻找最优的函数值,即确定最佳麻雀个体的位置。
4)根据最佳麻雀个体位置得到参数C、g的最优值。
5)将最优参数C、g赋给支持向量机,进行训练,得到优化的支持向量机预测模型。
6)输入测试样本,预测模型输出测试样本的预测值,与优化前的支持向量机预测对比和分析误差。具体流程如下所示:
4. SSA-SVR回归预测模型的参数设置
4.1 数据说明
采用建筑物能源数据集,含有8个特征指标(影响因素),单输出预测指标。
4.2 数据格式
样本编号 | features1 | features2 | features3 | … | featuresn | target |
---|---|---|---|---|---|---|
1 | – | – | – | – | – | – |
2 | – | – | – | – | – | – |
… | – | – | – | – | – | – |
n | – | – | – | – | – | – |
4.3 参数设置
支持向量机参数:
'-s 3' %使用SVR回归预测
v=5; %五折交叉验证
麻雀搜索算法参数:
% SSA的参数选项初始化
ssa_option.maxgen = 100; %最大迭代次数
ssa_option.sizepop = 20; %种群大小
ssa_option.cbound = [0.001,100]; %C的范围
ssa_option.gbound = [0.001,1000]; %g的范围
ssa_option.v = 5; %交叉验证折数
ssa_option.ST = 0.6;%安全值
ssa_option.PD = 0.7;%发现者的比列,剩下的是加入者
ssa_option.SD = 0.2;%意识到有危险麻雀的比重
5. 运行结果
5.1 麻雀搜索算法的进化曲线与优化后的C、g参数最优值
5.2 SSA优化支持向量机预测的结果与误差分析
使用支持向量机预测对该组数据的计算误差为:
5.3 SSA优化SVR的预测值与实际值对比图
6. MATLAB代码
以下介绍了常用的支持向量机分类和预测模型及编写相应的代码,相关模型原理和代码见博客主页。
支持向量机回归预测模型 |
---|
支持向量机回归预测MATLAB程序 |
粒子群算法优化支持向量机回归预测的MATLAB代码 |
遗传算法优化支持向量机回归预测的MATLAB代码 |
麻雀搜素算法SSA优化支持向量机回归预测的MATLAB代码 |
支持向量机分类模型 |
---|
最小二乘支持向量机分类模型 |
最小二乘支持向量机分类MATLAB代码 |
遗传算法GA优化最小二乘支持向量机分类MATLAB代码 |
灰狼优化算法GWO优化最小二乘支持向量机分类MATLAB代码 |
支持向量机分类及优化算法模型 |
支持向量机分类算法MATLAB代码 |
粒子群优化算法PSO优化支持向量机分类MATLAB代码 |
遗传算法GA优化支持向量机分类MATLAB代码 |
鲸鱼优化算法WOA优化支持向量机分类MATLAB代码 |
麻雀搜索算法SSA优化支持向量机分类MATLAB代码 |
蝗虫优化算法GOA优化支持向量机分类MATLAB代码 |
灰狼优化算法GWO优化支持向量机分类MATLAB代码 |
基于麻雀搜索算法优化的支持向量机回归预测-附代码相关推荐
- 基于麻雀搜索算法优化的lssvm回归预测
基于麻雀搜索算法优化的lssvm回归预测 - 附代码 文章目录 基于麻雀搜索算法优化的lssvm回归预测 - 附代码 1.数据集 2.lssvm模型 3.基于麻雀算法优化的LSSVM 4.测试结果 5 ...
- 基于灰狼算法优化的lssvm回归预测-附代码
基于灰狼算法优化的lssvm回归预测 - 附代码 文章目录 基于灰狼算法优化的lssvm回归预测 - 附代码 1.数据集 2.lssvm模型 3.基于灰狼算法优化的LSSVM 4.测试结果 5.Mat ...
- 【预测模型-ELM预测】基于麻雀算法优化极限学习机预测附matlab代码
1 内容介绍 一种基于麻雀搜索算法优化极限学习机的风电功率预测方法,具体包括如下步骤:步骤1,确定影响风电功率的主导影响因子:步骤2,构建麻雀搜索算法优化核极限学习机预测模型,通过该模型对风电功率进行 ...
- 【图像分割】基于麻雀算法优化Kmeans实现图像分割附Matlab代码
1 内容介绍 提出一种基于K-Means聚类的麻雀算法,该算法利用麻雀算法鲁棒性较强且不易陷入局部最优值的特点,动态的确定了聚类的数目和中心,解决了K-Means聚类初始点选择不稳定的缺陷,在此两种算 ...
- 单目标应用:基于麻雀搜索算法优化灰色神经网络(grey neural network)的数据预测(提供MATLAB代码)
一.麻雀搜索算法 麻雀搜索算法(sparrow search algorithm,SSA)由Jiankai Xue等人于2020年提出,该算法是根据麻雀觅食并逃避捕食者的行为而提出的群智能优化算法.S ...
- 基于麻雀算法改进的DELM预测-附代码
麻雀算法改进的深度极限学习机DELM的回归预测 文章目录 麻雀算法改进的深度极限学习机DELM的回归预测 1.ELM原理 2.深度极限学习机(DELM)原理 3.麻雀算法 4.麻雀算法改进DELM 5 ...
- 基于麻雀算法的无人机航迹规划 - 附代码
基于麻雀算法的无人机航迹规划 文章目录 基于麻雀算法的无人机航迹规划 1.麻雀搜索算法 2.无人机飞行环境建模 3.无人机航迹规划建模 4.实验结果 4.1地图创建 4.2 航迹规划 5.参考文献 6 ...
- 【预测模型-ELM预测】基于原子搜索算法优化极限学习机预测matlab代码
1 简介 针对变压器故障的特征,结合变压器油中气体分析法以及三比值法.提出了基于原子搜索算法改进极限学习机的故障诊断方法.由于输入层与隐含层的权值和阈值是随机产生.传统的极限学习机可能会使隐含层节点 ...
- 基于萤火虫算法优化的lssvm回归预测附matlab代码
✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.
最新文章
- simulink设计PID控制器及其封装详解
- SSM中通过okhttp3向接口发送xml格式的请求参数
- go的25个关键字(保留字)和36个预定标识符
- bootstrap table使用参考
- いちがつ(2017/1)
- 【Kafka】Kafka No serviceName defined in either JAAS or Kafka config
- 蓝桥杯 ALGO-79 算法训练 删除数组零元素
- 2021 年百度之星·程序设计大赛 - 初赛二 1003 魔怔(并查集,联通性,欧拉回路)
- 20165203 实验一 Java开发环境的熟悉
- 6个重要的.NET概念:栈,堆,值类型,引用类型,装箱,拆箱[转]
- pspice仿真笔记——spice模型转化
- STM32F407极简串口设置
- SQL server添加表和字段注释
- 为什么创业者要假装读过《从0到1》和《创业维艰》?
- PS图片压缩教程,教你快速压缩jpg图片文件的大小而又不失真!
- python怎样分析文献综述_论文的文献综述有什么方法吗?
- 花式方法解决不同vlan的主机互通
- [].push.apply(a, b)是什么意思
- Navicat查看密码,忘记密码之解决方案【Java版】
- Springboot访问静态页面