date:2024/07/23
author:sion
tag:Deeping Learn
LDA(线性判别分析)
文章目录
- LDA(线性判别分析)
- 1.LDA是什么
- LDA是一种解决二分类问题的线性方法。它描述,对于给定样例集,将样例点投影到一条直线上,这条直线能使异样的样例相距远,同类的样例分布靠近,对于新的样例,根据在这条直线上的投影判断属于哪一类别。
- LDA(线性判别分析)
- 1.LDA是什么
- 2.问题背景
- 3.投影
- 4.离散度
- 5.目标函数
- 6.推广到多分类
1.LDA是什么
LDA是一种解决二分类问题的线性方法。它描述,对于给定样例集,将样例点投影到一条直线上,这条直线能使异样的样例相距远,同类的样例分布靠近,对于新的样例,根据在这条直线上的投影判断属于哪一类别。
date:2024/07/23
author:sion
tag:Deeping Learn
LDA(线性判别分析)
文章目录
- LDA(线性判别分析)
- 1.LDA是什么
- LDA是一种解决二分类问题的线性方法。它描述,对于给定样例集,将样例点投影到一条直线上,这条直线能使异样的样例相距远,同类的样例分布靠近,对于新的样例,根据在这条直线上的投影判断属于哪一类别。
- LDA(线性判别分析)
- 1.LDA是什么
- 2.问题背景
- 3.投影
- 4.离散度
- 5.目标函数
- 6.推广到多分类
1.LDA是什么
LDA是一种解决二分类问题的线性方法。它描述,对于给定样例集,将样例点投影到一条直线上,这条直线能使异样的样例相距远,同类的样例分布靠近,对于新的样例,根据在这条直线上的投影判断属于哪一类别。
因此我们的所有任务围绕确定直线展开。
2.问题背景
首先描述问题背景,这里直接引用西瓜书原话:
这里描述的是一个二分类问题。
那么如何理解投影?
3.投影
若已知向量
x
⃗
\vec{x}
x和向量
w
⃗
\vec{w}
w ,求
x
⃗
\vec{x}
x在向量
w
⃗
\vec{w}
w上的投影,可以用内积表示:
x
⃗
⋅
w
⃗
=
∣
x
⃗
∣
∣
w
⃗
∣
cos
θ
\vec{x} \cdot \vec{w} = |\vec{x}||\vec{w}|\cos {\theta}
x⋅w=∣x∣∣w∣cosθ
当w为单位向量,该投影为:
∣
x
⃗
∣
cos
θ
|\vec{x}|\cos {\theta}
∣x∣cosθ
因此在下图上,
y
y
y表示target(标签),假设x与y有线性关系由参数集合
w
w
w确定(
y
=
w
x
+
b
,
w
T
=
w
,
b
∗
y = wx + b,w^T = {w,b}*
y=wx+b,wT=w,b∗)
则任意x在直线上的投影可以认为是x根据线性关系找到的y值,那么这个投影过程表示为:
w
T
X
w^TX
wTX
其中
x
i
x_i
xi在向量
X
X
X方向上(
X
=
X
1
;
X
2
.
.
;
X
i
X={X_1;X_2..;X_i}
X=X1;X2..;Xi)
4.离散度
前面提到需要使得“异样的样例相距远,同类的样例分布靠近”,因此我们需要一个衡量标准,异样的距离使用类间散度衡量,同样使用类内散度衡量
$ \ {\mu}_i
用来表示各类的均值,这里只有
用来表示各类的均值,这里只有
用来表示各类的均值,这里只有\ {\mu_0},{\mu_1}$,分别表示正类和负类的均值。异类之间的距离使用均值在直线的投影的距离表示:
∣
∣
w
T
μ
0
−
w
T
μ
1
∣
∣
2
2
=
w
T
(
μ
0
−
μ
1
)
(
μ
0
−
μ
1
)
T
w
||w^T\mu_0-w^T\mu_1||_2^2 = w^T(\mu_0-\mu_1)(\mu_0-\mu_1)^Tw
∣∣wTμ0−wTμ1∣∣22=wT(μ0−μ1)(μ0−μ1)Tw
这里下标2表示2类向量的模,即欧几里得距离
同类之间使用协方差比较距离:
w
T
(
Σ
0
+
Σ
1
)
w
w^T(\Sigma_0 + \Sigma_1) w
wT(Σ0+Σ1)w
Σ
\ {\Sigma}
Σ为协方差矩阵
为了简化表示,我们引入两个新概念,类间散度矩阵和类内散度矩阵。
类间散度矩阵用
S
b
\ {S_b}
Sb表示:
S
b
=
(
μ
0
−
μ
1
)
(
μ
0
−
μ
1
)
T
S_b=(\mu_0-\mu_1)(\mu_0-\mu_1)^T
Sb=(μ0−μ1)(μ0−μ1)T
类内散度矩阵用
S
w
S_w
Sw表示:
S
w
=
Σ
0
+
Σ
1
S_w= \Sigma_0+\Sigma_1
Sw=Σ0+Σ1
5.目标函数
为了同时考虑”使同类样例的投影点尽可能接近,可以让同类样例投影点的协方差尽可
能小“,设置目标函数:
J
=
w
T
S
b
w
w
T
S
w
w
J=\frac{w^TS_bw}{w^TS_ww}
J=wTSwwwTSbw
求这个目标函数的最大值可以转换为求
S
b
\ S_b
Sb和
S
w
\ S_w
Sw的**”广义瑞利商“**,这里使用拉格朗日乘子法求解,具体过程不在讨论范围。
m i n ω T S b w s . t . w T S w w = 1. min\quad ω^TS_bw\\ s.t.\quad w^TS_ww = 1 . minωTSbws.t.wTSww=1.
最终求得 w = S − 1 ( μ 0 − μ 1 ) \ w = S^{-1}(\mu_0-\mu_1) w=S−1(μ0−μ1)
6.推广到多分类
在多分类问题中,LDA一般作为降维方法进行属性约简。设target数量为N, μ \mu μ为所有数据的均值, μ i \ {\mu_i} μi表示示属性i的均值, m i m_i mi表示第i属性的数据量。
首先定义”全局散度矩阵“:
S
t
=
S
b
+
S
w
=
∑
i
=
1
m
(
x
i
−
μ
)
(
x
i
−
μ
)
T
S_t=S_b+S_w=\sum_{i=1}^m({x_i}-\mu)({x_i}-\mu)^T
St=Sb+Sw=i=1∑m(xi−μ)(xi−μ)T
S
w
\ {S_w}
Sw 可以表示为:
S
w
i
=
∑
x
∈
X
i
Σ
i
=
∑
x
∈
X
i
(
x
−
μ
i
)
(
x
−
μ
i
)
T
S
w
=
∑
i
=
1
N
S
w
i
{S_w}_i = \sum_{x\in X_i} \Sigma_i = \sum_{x\in X_i} \ (x-\mu_i)(x-\mu_i)^T\\ S_w = \sum_{i=1}^N S_{wi}
Swi=x∈Xi∑Σi=x∈Xi∑ (x−μi)(x−μi)TSw=i=1∑NSwi
S
b
\ {S_b}
Sb可以表示为:
S
b
=
∑
i
=
1
N
m
i
(
μ
i
−
μ
)
(
μ
i
−
μ
)
T
S_b=\sum_{i=1}^Nm_i(\mu_i-\mu)(\mu_i-\mu)^T
Sb=i=1∑Nmi(μi−μ)(μi−μ)T
推导参考:
多分类 LDA 可以有多种实现方法,使用 S w S_w Sw, S t S_t St 两者中的任何两个即可。常见的一种实现是采用优化目标
m
a
x
W
t
r
(
W
T
S
b
W
)
t
r
(
W
T
S
w
W
)
max_W{\frac{tr(W^TS_bW)}{tr(W^TS_wW)}}
maxWtr(WTSwW)tr(WTSbW)
t
r
(
⋅
)
tr(\cdot)
tr(⋅)表示矩阵的迹(trace)即矩阵对角线上元素的和,我们在LDA中要做的是找到一个投影矩阵
W
W
W,使得这个比值最大化。
该式可以转换为一个最大广义特征值的问题的求解:
S
b
W
=
λ
S
w
W
S_bW=\lambda S_wW
SbW=λSwW
W
W
W的闭式解则是
S
w
−
1
S
b
S_w ^{-1}S_b
Sw−1Sb_的N-1个最大广义特征值所对应的特征向量组成的矩阵,即我们要求的投影矩阵