基于鸟群算法优化混合核极限学习机(HKELM)的分类问题求解
1.HKELM原理
核极限学习机(KELM)是一种单隐含层前馈 神经网络,通过引入核函数改善极限学习机(ELM) 性能,其输出可表示为:
f
(
x
)
=
h
(
x
)
H
U
(
Z
C
+
H
H
U
)
−
1
U
=
[
K
(
x
,
x
1
)
⋮
K
(
x
,
x
N
)
]
U
(
Z
C
+
W
ELM
)
−
1
U
\begin{aligned} & f(x)=h(x) H^U\left(\frac{Z}{C}+H H^U\right)^{-1} U \\ & =\left[\begin{array}{c} K\left(x, x_1\right) \\ \vdots \\ K\left(x, x_N\right) \end{array}\right]^{\mathrm{U}}\left(\frac{Z}{C}+W_{\text {ELM }}\right)^{-1} U \end{aligned}
f(x)=h(x)HU(CZ+HHU)−1U=
K(x,x1)⋮K(x,xN)
U(CZ+WELM )−1U
式中: x x x —样本数据; f ( x ) f(x) f(x) —模型输出; h ( x ) h(x) h(x) —隐含层输人; H H H —特征映射矩阵; C C C —正则化参数; Z Z Z —单位矩阵; U U U —训练集目标向量; K ( x 0 K\left(x_0\right. K(x0 , x p ) \left.x_p\right) ~ xp) 一核函数; W E L M W_{E L M} WELM 一核矩阵。
目前常用的核函数主要有线性、多项式、径向基、Sigmoid 等核函数。文章基于局部核函数 R B F R B F RBF 和全局核函数 Poly 构建具有更好性能的混合核函数,使 KELM 拥有全局和局部两方面的优秀性能,RBF 与 Poly 函数描述如下:
K R B F ( x 0 , x p ) = exp ( − ∥ x 0 − x p ∥ 2 / σ 2 ) K Poly ( x 0 , x p ) = ( x 0 , x p + c 1 ) d \begin{gathered} K_{R B F}\left(x_0, x_p\right)=\exp \left(-\left\|x_0-x_p\right\|^2 / \sigma^2\right) \\ K_{\text {Poly }}\left(x_0, x_p\right)=\left(x_0, x_p+c_1\right)^d \end{gathered} KRBF(x0,xp)=exp(−∥x0−xp∥2/σ2)KPoly (x0,xp)=(x0,xp+c1)d
式中:
s
−
R
B
F
s-R B F
s−RBF 核函数参数;
c
1
、
d
−
P
o
l
y
c_1 、 d-P o l y
c1、d−Poly 核函数参数。
由于 HKELM 是基于不同核函数的 KELM 线性组合,因此,基于 RBF、Poly 线性组合的混合核函数描述为:
K
H
(
x
0
,
x
p
)
=
S
K
R
B
F
(
x
0
,
x
p
)
+
(
1
−
S
)
K
P
o
b
(
x
0
,
x
p
)
K_H\left(x_0, x_p\right)=S K_{R B F}\left(x_0, x_p\right)+(1-S) K_{P o b}\left(x_0, x_p\right)
KH(x0,xp)=SKRBF(x0,xp)+(1−S)KPob(x0,xp)
式中: K H ( x 0 , x p ) K_H\left(x_0, x_p\right) KH(x0,xp) 一混合核函数; s − R B F s-R B F s−RBF 核函数参数权重系数; K R B F ( x 0 , x p ) K_{R B F}\left(x_0, x_p\right) KRBF(x0,xp) 、 K Poly ( x 0 , x p ) K_{\text {Poly }}\left(x_0, x_p\right) KPoly (x0,xp) 一 RBF、Poly核函数。
将 K H ( x 0 , x p ) K_H\left(x_0, x_p\right) KH(x0,xp) 代人输出函数可得到 HKELM模型。
2.分类问题求解
本文对乳腺肿瘤数据进行分类。采用随机法产生训练集和测试集,其中训练集包含 500 个样本,测试集包含 69 个样本 。
3.基于鸟群算法优化的HKELM
鸟群算法原理请参考:https://blog.csdn.net/u011835903/article/details/108529990
由前文可知,KHELM参数设置具有满目性。本文利用鸟群算法对HKELM相关参数进行优化。适应度函数设计为训练集的误差的MSE:
f
i
t
n
e
s
s
=
2
−
A
c
c
u
r
a
c
y
(
t
r
a
i
n
)
−
A
c
c
u
r
a
c
y
(
t
e
s
t
)
fitness=2-Accuracy(train)-Accuracy(test)
fitness=2−Accuracy(train)−Accuracy(test)
适应度函数为,训练集和测试集(验证集)的分类错误率,分类错误率越低,代表分类正确率越高。
4.实验结果
文对乳腺肿瘤数据进行分类。采用随机法产生训练集和测试集,其中训练集包含 500 个样本,测试集包含 69 个样本 。
%% 导入数据
load data.mat
% 产生训练集/测试集
a = 1:569;
Train = data(a(1:500),:);
Test = data(a(501:end),:);
% 训练数据
P_train = Train(:,3:end);
T_train = Train(:,2);
% 测试数据
P_test = Test(:,3:end);
T_test = Test(:,2);