基于蜣螂算法优化的lssvm回归预测-附代码
基于蜣螂算法优化的lssvm回归预测 - 附代码
摘要:为了提高最小二乘支持向量机(lssvm)的回归预测准确率,对lssvm中的惩罚参数和核惩罚参数利用蜣螂算法进行优化。
1.数据集
数据信息如下:
data.mat 的中包含input数据和output数据
其中input数据维度为:2000*2
其中output数据维度为2000*1
所以RF模型的数据输入维度为2;输出维度为1。
2.lssvm模型
lssvm请自行参考相关机器学习书籍。
3.基于蜣螂算法优化的LSSVM
蜣螂算法的具体原理参考博客:https://blog.csdn.net/u011835903/article/details/128280084。
蜣螂算法的优化参数为惩罚参数和核惩罚参数。适应度函数为RF对训练集和测试集的均方误差(MSE),均方误差MSE越低越好。
f
i
n
t
e
n
e
s
s
=
M
S
E
[
p
r
e
d
i
c
t
(
t
r
a
i
n
)
]
+
M
S
E
[
p
r
e
d
i
c
t
(
t
e
s
t
)
]
finteness = MSE[predict(train)] + MSE[predict(test)]
finteness=MSE[predict(train)]+MSE[predict(test)]
4.测试结果
数据划分信息如下: 训练集数量为1900组,测试集数量为100组
蜣螂参数设置如下:
%% 利用蜣螂算法选择回归预测分析最佳的lssSVM参数c&g
%% 蜣螂参数设置
% 定义优化参数的个数,在该场景中,优化参数的个数dim为2 。
% 定义优化参数的上下限,如c的范围是[0.01, 1], g的范围是[2^-5, 2^5],那么参数的下限lb=[0.01, 2^-5];参数的上限ub=[1, 2^5]。
%目标函数
fobj = @(x) fun(x,Pn_train,Tn_train,Pn_test,Tn_test);
% 优化参数的个数 (c、g)
dim = 2;
% 优化参数的取值下限
lb = [0.01,0.01];
ub = [5,5];
% 参数设置
pop =20; %蜣螂数量
Max_iteration=5;%最大迭代次数
DBO-LSSVM优化得到的最优参数为:
DBO-LSSVM优化得到的gama为:5
DBO-LSSVM优化得到的sig2为:0.24957
DBO-LSSVM结果:
DBO-LSSVM训练集MSE:0.046967
DBO-LSSVM测试集MSE:0.10745
LSSVM结果:
LSSVM训练集MSE:0.16197
LSSVM测试集MSE:0.32174
从MSE结果来看,经过改进后的蜣螂-LSSVM明显优于未改进前的结果。
5.Matlab代码
相关文章
- 计算在工作日时间推迟时间的算法
- python数据分析、挖掘、机器学习的算法都有哪些第3版2021.8.30
- 秀到起飞!LeetCode官方推出算法面试指导手册(代码版)限时开源
- 一致性Hash算法以及java实现「建议收藏」
- 清华&腾讯最新算法Next3D!高质量3D 感知合成,支持3D风格画!论文/代码速递2022.11.24!
- 1行Python代码,计算程序的运行时间,也可以用在算法和接口的调优上
- 一种基于交叉选择的柯西反向鲸鱼优化算法QOWOA附matlab代码
- A-LOAM代码算法
- 数据分享|R语言逻辑回归、Naive Bayes贝叶斯、决策树、随机森林算法预测心脏病|附代码数据
- R语言使用随机技术差分进化算法优化的Nelson-Siegel-Svensson模型|附代码数据
- 【算法】动态规划 ⑤ ( LeetCode 63.不同路径 II | 问题分析 | 动态规划算法设计 | 代码示例 )
- 【算法】动态规划 ⑦ ( LeetCode 55. 跳跃游戏 | 算法分析 | 代码示例 )
- 模拟退火算法在监控软件中的运用
- 苹果算法突然改变,科研人员很难再在研究中使用 Apple Watch 智能手表
- Google 破解 SHA-1算法,到底为啥? | 宅客漫谈
- php读取30天之内的根据算法排序的代码
- javascript自然分类法算法实现代码
- PHP中对各种加密算法、Hash算法的速度测试对比代码