机器学习-LDA(线性判别降维算法) LDA原理及算法流程,重点讲降维方面的应用,与PCA进行了区别
机器学习–LDA(分类)Fisher 线性判别
降维的基本流程
输入:数据集
D
=
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
.
.
.
,
(
(
x
m
,
y
m
)
)
D={(x_1,y_1),(x_2,y_2),...,((x_m,y_m))}
D=(x1,y1),(x2,y2),...,((xm,ym)),其中任意样本
x
i
x_i
xi为n维向量,
y
i
∈
C
1
,
C
2
,
.
.
.
,
C
k
yi∈{C_1,C_2,...,C_k}
yi∈C1,C2,...,Ck,降维到的维度d。
输出:降维后的样本集
D
D
D
1) 计算类内散度矩阵
S
w
S_w
Sw
2) 计算类间散度矩阵
S
b
S_b
Sb
3) 计算矩阵
S
w
−
1
S
b
S_w^{-1}S_b
Sw−1Sb
4)计算
S
w
−
1
S
b
S_w^{-1}S_b
Sw−1Sb的最大的d个特征值和对应的d个特征向量
(
w
1
,
w
2
,
.
.
.
w
d
)
(w_1,w_2,...w_d)
(w1,w2,...wd),得到投影矩阵W,即求
S
w
S_w
Sw,
S
b
S_b
Sb的广义特征值和特征向量。
5) 对样本集中的每一个样本特征
x
i
x_i
xi,转化为新的样本
z
i
=
W
T
x
i
z_i=W^Tx_i
zi=WTxi
6) 根据得到输出样本集
D
′
=
(
z
1
,
y
1
)
,
(
z
2
,
y
2
)
,
.
.
.
,
(
(
z
m
,
y
m
)
)
D'={(z_1,y_1),(z_2,y_2),...,((z_m,y_m))}
D′=(z1,y1),(z2,y2),...,((zm,ym))。
分类的基本流程,也称为Fisher线性判别
1) 计算类内散度矩阵
S
w
S_w
Sw
2) 计算类间散度矩阵
S
b
S_b
Sb
3) 计算矩阵
S
w
−
1
S
b
S_w^{-1}S_b
Sw−1Sb
4)计算
S
w
−
1
S
b
S_w^{-1}S_b
Sw−1Sb的最大的d个特征值和对应的d个特征向量,即求
S
w
S_w
Sw,
S
b
S_b
Sb的广义特征值和特征向量
(
w
1
,
w
2
,
.
.
.
w
d
)
(w_1,w_2,...w_d)
(w1,w2,...wd),得到投影矩阵W。
5) 分类器的偏移量
B
=
−
W
T
μ
1
+
μ
2
2
B = -W^T\frac{\mu_1+\mu_2}{2}
B=−WT2μ1+μ2
6)判别函数:
y
=
W
T
+
B
y=W^T+B
y=WT+B。
7)将测试数据集
X
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
.
.
.
(
x
d
,
y
d
)
}
X=\{(x_1,y_1),(x_2,y_2)...(x_d,y_d)\}
X={(x1,y1),(x2,y2)...(xd,yd)}中每个测试样本分别代入判别函数。若
y
>
0
y>0
y>0,
x
x
x数据类别一,若
y
<
0
y<0
y<0,
x
x
x属于类别二。
Matlab 降维方法工具包 github from this website
Currently, the Matlab Toolbox for Dimensionality Reduction contains the following techniques:
Principal Component Analysis (PCA)
Probabilistic PCA
Factor Analysis (FA)
Classical multidimensional scaling (MDS)
Sammon mapping
Linear Discriminant Analysis (LDA) 等34种降维方法