基于蜣螂算法优化的核极限学习机(KELM)分类算法-附代码
基于蜣螂算法优化的核极限学习机(KELM)分类算法
摘要:本文利用蜣螂算法对核极限学习机(KELM)进行优化,并用于分类
1.KELM理论基础
核极限学习机(Kernel Based Extreme Learning Machine,KELM)是基于极限学习机(Extreme Learning Machine,ELM)并结合核函数所提出的改进算法,KELM 能够在保留 ELM 优点的基础上提高模型的预测性能。
ELM 是一种单隐含层前馈神经网络,其学习目标函数F(x) 可用矩阵表示为:
F
(
x
)
=
h
(
x
)
×
β
=
H
×
β
=
L
(9)
F(x)=h(x)\times \beta=H\times\beta=L \tag{9}
F(x)=h(x)×β=H×β=L(9)
式中:
x
x
x 为输入向量,
h
(
x
)
h(x)
h(x)、
H
H
H 为隐层节点输出,
β
β
β 为输出权重,
L
L
L 为期望输出。
将网络训练变为线性系统求解的问题,
β
\beta
β根据
β
=
H
∗
⋅
L
β=H * ·L
β=H∗⋅L 确定,其中,
H
∗
H^*
H∗ 为
H
H
H 的广义逆矩阵。为增强神经网络的稳定性,引入正则化系数
C
C
C 和单位矩阵
I
I
I,则输出权值的最小二乘解为
β
=
H
T
(
H
H
T
+
I
c
)
−
1
L
(10)
\beta = H^T(HH^T+\frac{I}{c})^{-1}L\tag{10}
β=HT(HHT+cI)−1L(10)
引入核函数到 ELM 中,核矩阵为:
Ω
E
L
M
=
H
H
T
=
h
(
x
i
)
h
(
x
j
)
=
K
(
x
i
,
x
j
)
(11)
\Omega_{ELM}=HH^T=h(x_i)h(x_j)=K(x_i,x_j)\tag{11}
ΩELM=HHT=h(xi)h(xj)=K(xi,xj)(11)
式中:
x
i
x_i
xi ,
x
j
x_j
xj 为试验输入向量,则可将式(9)表达为:
F
(
x
)
=
[
K
(
x
,
x
1
)
;
.
.
.
;
K
(
x
,
x
n
)
]
(
I
C
+
Ω
E
L
M
)
−
1
L
(12)
F(x)=[K(x,x_1);...;K(x,x_n)](\frac{I}{C}+\Omega_{ELM})^{-1}L \tag{12}
F(x)=[K(x,x1);...;K(x,xn)](CI+ΩELM)−1L(12)
式中:
(
x
1
,
x
2
,
…
,
x
n
)
(x_1 , x_2 , …, x_n )
(x1,x2,…,xn) 为给定训练样本,
n
n
n 为样本数量.
K
(
)
K()
K()为核函数。
2.分类问题
本文对乳腺肿瘤数据进行分类。采用随机法产生训练集和测试集,其中训练集包含 500 个样本,测试集包含 69 个样本 。
3.基于蜣螂算法优化的KELM
蜣螂算法的具体原理参考博客:https://blog.csdn.net/u011835903/article/details/128280084。
由前文可知,本文利用蜣螂算法对正则化系数 C 和核函数参数 S 进行优化。适应度函数设计为训练集与测试集的错误率。
f
i
t
n
e
s
s
=
a
r
g
m
i
n
(
T
r
a
i
n
E
r
r
o
r
R
a
t
e
+
T
e
s
t
E
r
r
o
r
R
a
t
e
)
。
fitness = argmin(TrainErrorRate + TestErrorRate)。
fitness=argmin(TrainErrorRate+TestErrorRate)。
4.测试结果
训练集DBO-KELM正确率:1
测试集DBO-KELM正确率:0.85507
病例总数:569 良性:357 恶性:212
训练集病例总数:500 良性:311 恶性:189
测试集病例总数:69 良性:46 恶性:23
良性乳腺肿瘤确诊:45 误诊:1 确诊率p1=97.8261%
恶性乳腺肿瘤确诊:14 误诊:9 确诊率p2=60.8696%
训练集KELM正确率:1
测试集KELM正确率:0.78261
病例总数:569 良性:357 恶性:212
训练集病例总数:500 良性:311 恶性:189
测试集病例总数:69 良性:46 恶性:23
良性乳腺肿瘤确诊:45 误诊:1 确诊率p1=97.8261%
恶性乳腺肿瘤确诊:9 误诊:14 确诊率p2=39.1304%
从结果可以看出,蜣螂-KELM明显优于原始KELM算法
5.Matlab代码
相关文章
- java算法集训代码填空题练习3
- 10大经典排序算法动图演示,看这篇就够了!(配相应代码)
- CV之FD之HOG:图像检测之基于HOG算法、简介、代码实现(计算图像相似度)之详细攻略
- 【路径规划】基于RRT算法和改进人工势场法的无人机任务规划方法研究(Python代码实现)
- 【路径规划】基于拓展随机树(RRT)算法的路径规划问题(Matlab代码实现)
- 基于模拟退火算法优化的BP神经网络预测模型(Matlab代码实现)
- 【ADMM】基于交替方向乘法器(ADMM)算法优化基于cs的速磁共振成像MRI研究(Matlab代码实现)
- 基于原子势函数及人工蜂群算法进行形状匹配优化(Matlab代码实现)
- 智能优化算法应用:基于麻雀搜索算法的积分计算 -附代码
- 基于麻雀搜索算法的极限学习机(ELM)分类算法-附代码
- 智能优化算法应用:基于麻雀搜索优化K-means图像分割算法 - 附代码
- 智能优化算法应用:基于GWO优化的最小交叉熵图像多阈值分割 - 附代码
- 一种基于自适应策略的混合鲸鱼优化算法-附代码
- 一种新型非线性收敛因子的灰狼优化算法-附代码
- 基于翻筋斗觅食策略的灰狼优化算法-附代码
- 三角函数(欧几里得算法)
- 目标检测系列算法:YOLOv7代码复现
- 目标检测系列算法:YOLOv6代码复现