思想总结
线性判别分析( Linear Discriminant Analysis , LDA )是一种经典的降维方法。和主成分分析 PCA 不
考虑样本类别输出的无监督降维技术不同, LDA 是一种监督学习的降维技术,数据集的每个样本有类别输出。
LDA 分类思想简单总结如下:
- 多维空间中,数据处理分类问题较为复杂, LDA 算法将多维空间中的数据投影到一条直线上,将 d
维数据转化成 1 维数据进行处理。 - 对于训练数据,设法将多维数据投影到一条直线上,同类数据的投影点尽可能接近,异类数据点尽
可能远离。 - 对数据进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定样本的类别。
如果用一句话概括 LDA 思想,即 “ 投影后类内方差最小,类间方差最大 ” 。
图解 LDA 核心思想
假设有红、蓝两类数据,这些数据特征均为二维,如下图所示。我们的目标是将这些数据投影到一维,让每一类相近的数据的投影点尽可能接近,不同类别数据尽可能远,即图中红色和蓝色数据中心之间的距离尽可能大。
左图和右图是两种不同的投影方式。
- 左图思路:让不同类别的平均点距离最远的投影方式。
- 右图思路:让同类别的数据挨得最近的投影方式。
从上图直观看出,右图红色数据和蓝色数据在各自的区域来说相对集中,根据数据分布直方图也可看出,所以右图的投影效果好于左图,左图中间直方图部分有明显交集。
以上例子是基于数据是二维的,分类后的投影是一条直线。如果原始数据是多维的,则投影后的分类面是一低维的超平面。
二类LDA算法原理
输入:数据集
D
=
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
.
.
.
,
(
x
m
,
y
m
)
D={(\boldsymbol x_1,\boldsymbol y_1),(\boldsymbol x_2,\boldsymbol y_2),...,(\boldsymbol x_m, \boldsymbol y_m)}
D=(x1,y1),(x2,y2),...,(xm,ym),其中样本
x
i
\boldsymbol x_i
xi 是 n 维向量,
y
i
ϵ
0
,
1
\boldsymbol y_i \epsilon{0, 1}
yiϵ0,1 ,降维后的目标维度
d
d
d 。定义
N
j
(
j
=
0
,
1
)
N_j(j=0,1)
Nj(j=0,1) 为第
j
j
j 类样本个数;
X
j
(
j
=
0
,
1
)
X_j(j=0,1)
Xj(j=0,1) 为第
j
j
j 类样本的集合;
u
j
(
j
=
0
,
1
)
u_j(j=0,1)
uj(j=0,1) 为第
j
j
j 类样本的均值向量;
∑
j
(
j
=
0
,
1
)
\sum_j(j=0,1)
∑j(j=0,1) 为第
j
j
j 类样本的协方差矩阵。
其中
假设投影直线是向量
w
\boldsymbol w
w ,对任意样本
x
i
\boldsymbol x_i
xi ,它在直线
w
w
w 上的投影为
w
T
x
i
\boldsymbol w^Tx_i
wTxi ,两个类别的中心点
u
0
u_0
u0,
u
1
u_1
u1 在直线
w
w
w 的投影分别为
w
T
u
0
\boldsymbol w^Tu_0
wTu0 、
w
T
u
1
\boldsymbol w^Tu_1
wTu1 。
LDA 的目标是让两类别的数据中心间的距离 ∣ w T u 0 − w T u 1 ∣ 2 2 | \boldsymbol w^Tu_0 - \boldsymbol w^Tu_1|^2_2 ∣wTu0−wTu1∣22 尽量大,与此同时,希望同类样本投影点的协方差 w T ∑ 0 w \boldsymbol w^T \sum_0\boldsymbol w wT∑0w 、 w T ∑ 1 w \boldsymbol w^T \sum_1 \boldsymbol w wT∑1w 尽量小,最小化 w T ∑ 0 w + w T ∑ 1 w \boldsymbol w^T \sum_0\boldsymbol w + \boldsymbol w^T \sum_1 \boldsymbol w wT∑0w+wT∑1w 。
定义类内散度矩阵
类间散度矩阵
S
b
=
(
u
0
−
u
1
)
(
u
0
−
u
1
)
T
S_b = (u_0 - u_1)(u_0 - u_1)^T
Sb=(u0−u1)(u0−u1)T
据上分析,优化目标为
根据广义瑞利商的性质,矩阵
S
−
1
w
S
b
S^{-1}{w} S_b
S−1wSb 的最大特征值为
J
(
w
)
J(\boldsymbol w)
J(w) 的最大值,矩阵
S
−
1
w
S
b
S^{-1}{w} S_b
S−1wSb 的最大特征值对应的特征向量即为
w
\boldsymbol w
w 。
LDA算法流程总结
算法降维流程如下:
输入:数据集
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
y_i \epsilon {C_1, C_2, ..., C_k}
yiϵC1,C2,...,Ck ,降维后的目标维度
d
d
d 。
输出:降维后的数据集
D
‾
\overline{D}
D 。
步骤:
- 计算类内散度矩阵 S w S_w Sw 。
- 计算类间散度矩阵 S b S_b Sb 。
- 计算矩阵 S w − 1 S b S^{-1}_wS_b Sw−1Sb 。
- 计算矩阵 S w − 1 S b S^{-1}_wS_b Sw−1Sb 的最大的 d 个特征值。
- 计算 d 个特征值对应的 d 个特征向量,记投影矩阵为 W 。
- 转化样本集的每个样本,得到新样本 P i = W T x i P_i = W^Tx_i Pi=WTxi 。
- 输出新样本集 D ‾ = ( p 1 , y 1 ) , ( p 2 , y 2 ) , . . . , ( p m , y m ) \overline{D} = { (p_1,y_1),(p_2,y_2),...,(p_m,y_m) } D=(p1,y1),(p2,y2),...,(pm,ym)
LDA优缺点
优点
- 可以使用类别的先验知识
- 以标签,类别衡量差异性的有监督降维方式,相对于PCA的模糊性,其目的更明确,更能反映样本间的差异
缺点
- LDA不适合对非高斯分布样本进行降维
- LDA降维最多降到分类数k-1维
- LDA在样本分类信息依赖方差而不是均值时,降维效果不好
- LDA可能过度拟合数据
LDA和PCA的区别
相同点
- 两者俊可以对数据进行降维
- 两者在降维时均使用了矩阵特征分解的思想
- 两者都假设数据符合高斯分布
不同点
LDA | PCA |
---|---|
有监督 | 无监督 |
降维最多降到k-1维 | 降维多少没有限制 |
可以用于降维,还可以用于分类 | 只用于降维 |
选择分类性能最好的投影方向 | 选择样本点投影具有最大方差的方向 |
更明确,更能反应样本间的差异 | 目的较为模糊 |