基于灰狼算法优化的核极限学习机(KELM)分类算法

文章目录

基于灰狼算法优化的核极限学习机(KELM)分类算法1.KELM理论基础2.分类问题3.基于灰狼算法优化的KELM4.测试结果5.Matlab代码

摘要:本文利用灰狼算法对核极限学习机(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/107716390

由前文可知,本文利用灰狼算法对正则化系数 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.测试结果

从结果可以看出,灰狼-KELM明显优于原始KELM算法

5.Matlab代码

文章链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。