【SVM分类】基于matlab鲸鱼算法优化SVM分类(多输入多分类)【含Matlab源码 1557期】
一、鲸鱼优化算法优化支持向量机简介
1 改进的二进制 WOA
为了改善 WOA 算法在搜索过程中的收敛速度慢和陷入局部最优的缺点,提出一种改进二进制鲸鱼优化算法( IBWOA) 。 ( 1) 非线性收敛因子策略。为了更好地协调算法的全局搜索和局部搜索,本文提出一种新的非线性收敛因子策略,
2) 更新机制中引入粒子群优化策略。在 WOA算法的更新机制中,为了降低 WOA 算法陷入局部最优解的概率,本文采用粒子群优化策略对种群进行多样性操作。通过粒子群中的 ω 权重使算法快速跳出局部极值,使得种群更具有多样性。
式中: Xg 为个体最优位置; ω 是速度惯性权重; c1,c2表示学习因子; v t ( ) + 1 是 t + 1 次迭代时第 i 个粒子的速度。
为了实现鲸鱼个体位置在 0 和 1 之间的更新转换,本文采用的二进制更新转换函数[9]如下:
2 IBWOA-SVM 方法
SVM 的分类性能关键在于参数的设置,只有选择合适的 SVM 参数,才能得到高维空间的最优分类模型。关于对 SVM 参数的选取,目前研究最热的是采用智能优化算法来优化 SVM 参数方法,比如: 粒子群、蚁群和人工蜂群等。但是,这些智能算法存在着收敛速
度慢以及容易陷入局部最优等不足。因此,本文在前期工作的基础上,提出一种 IBWOA-SVM 方法,用来优化 SVM 的两个重要参数( 惩罚参数 C 和核参数 g) ,进而提高分类的准确率。
2.1流程图
图 1 所示为 IBWOA-SVM 方法的流程图。
IBWOA-SVM 方法的具体优化步骤如下:
( 1) 数据预处理,设置种群数量 n、最大迭代次数max_t、设定 C 和 g 的取值范围。
( 2) 将 SVM 的参数设定为每个鲸鱼个体,初始化种群。
( 3) 由 K 折交叉验证法计算每个鲸鱼个体的适应度值,记录当前个体及种群最优值。
( 4) 采用改进后的 IBWOA 算法对种群个体进行位置更新
5) 再次计算适应度值,通过适应度值的比较,更
新个体最优解及种群最优解,并获取新的种群。 ( 6) 判断算法是否满足终止条件; 若满足,则转到
( 7) ; 否则,转到( 4) 。 ( 7) 获取最优参数( C,g) 。 ( 8) 采用最优参数对训练样本进行训练建模。 ( 9) 采用建好的模型对测试样本进行检测。 ( 10) 输出最优参数( C,g) 及分类准确率。
2.2 伪代码
算法 1 IBWOA-SVM。
输入: 最大迭代次数 max_t,种群数 n,C 和 g 的取
值区间。
输出: 最优参数及分类准确率。
1. 初始化种群。
2. 计算个体的适应度值,得到个体最优及种群
最优。
3. WHILE 是否满足终止条件。
4. 更新 a,l,A,C,其中 a 为改进的非线性收敛因子。
5. FOR。
6. WOA 算法更新当前种群。
7. 采用粒子群优化策略更新当前种群。
8. END FOR。
9. 再次计算个体的适应度值,更新个体最优及种
群最优。
10. 采用最优参数( C,g) 对训练样本进行训练
建模。
11. 采用建好的模型对测试样本进行检测。
12. END WHILE。
返回最优参数( C,g) 及分类准确率。如算法 1 的伪代码所示,在 IBWOA-SVM 的搜索
过程中,对参数 a 采用非线性收敛因子策略,来协调算法的全局搜索和局部搜索; 在更新机制中引入粒子群优化策略,来保证种群的多样性,进而提高网络入侵的分类性能。
二、部分源代码
- 1
三、运行结果
四、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例(第2版)[M].电子工业出版社,2016.
[2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社,2017.
[3]周品.MATLAB 神经网络设计与应用[M].清华大学出版社,2013.
[4]陈明.MATLAB神经网络原理与实例精解[M].清华大学出版社,2013.
[5]方清城.MATLAB R2016a神经网络设计与应用28个案例分析[M].清华大学出版社,2018.
[6]徐慧,付迎春,付朝川,叶志伟.改进WOA算法优化SVM的网络入侵检测[J].实验室研究与探索. 2019,38(08)
文章来源: qq912100926.blog.csdn.net,作者:海神之光,版权归原作者所有,如需转载,请联系作者。
原文链接:qq912100926.blog.csdn.net/article/details/121612075
- 点赞
- 收藏
- 关注作者
评论(0)