小言_互联网的博客

LDA线性判别分析

336人阅读  评论(0)

LDA ( ( Linear Discriminant Analysis ) ) 的原理是,将数据通过线性投影的方法,投影到维度更低的空间中,使得投影后的点,会形成按类别区分,一簇一簇的情况,相同类别的点,将会在投影后的空间中更接近。如下图:

待分数据 X X m m 个样本
X = { x 1 , x 2 , x 3 , , x i , , x m } X=\{x_1,x_2,x_3,\text{…},x_i,\text{…},x_m\}
其中, x i x_i 是第 i i 个样本,有 n n 个特征,
x i = { x i 1 , x i 2 , x i 3 , , x i j , , x i n } x_i=\{x_i^1,x_i^2,x_i^3,\text{…},x_i^j,\text{…},x_i^n\}
类别标签有两类, D 1 D_1 D 2 D_2
投影函数为
Y = W T X Y=W^TX
Y为投影后的数据点。
设第 D i D_i 类有 k k 个样本,则第 D i D_i 类的原始数据的均值为
u i = 1 k x D i x u_i=\frac{1}{k}\sum_{x\in D_i}x
D i D_i 类的原始数据方差为
S i 2 = x D i ( x u i ) ( x u i ) T S_i^2=\sum_{x\in D_i}(x-u_i)(x-u_i)^T
线性映射后的第 D i D_i 类的均值为
u ^ i = 1 k y D i y = 1 k x D i W T x = W T u i \widehat u_i =\frac{1}{k}\sum_{y\in D_i}y=\frac{1}{k}\sum_{x\in D_i}W^Tx=W^Tu_i
线性映射后第 D i D_i 类的方差为
S ^ i 2 = y D i ( y u ^ i ) ( y u ^ i ) T = x D i ( W T x W T u i ) ( W T x W T u i ) T = x D i W T ( x u i ) ( x u i ) T ( W T ) T = x D i W T ( x u i ) ( x u i ) T W = W T S i 2 W \begin{aligned} \widehat S_i^2 &=\sum_{y\in D_i}(y-\widehat u_i)(y-\widehat u_i)^T\\ &=\sum_{x\in D_i}(W^Tx-W^Tu_i)(W^Tx-W^Tu_i)^T\\ &=\sum_{x\in D_i}W^T(x-u_i)(x-u_i)^T(W^T)^T\\ &=\sum_{x\in D_i}W^T(x-u_i)(x-u_i)^TW\\ &=W^TS_i^2W \end{aligned}
分类的目的是使得类间间距最大,类内间距最小。因此设置损失函数为
J ( W ) = u ^ 1 u ^ 2 2 S ^ 1 2 + S ^ 2 2 = W T u 1 W T u 2 2 W T S 1 2 W + W T S 2 2 W = W T u 1 u 2 2 W W T ( S 1 2 + S 2 2 ) W = W T S B 2 W W T S W 2 W \begin{aligned} J(W) &=\frac{\vert\widehat u_1-\widehat u_2\vert^2}{\widehat S_1^2+\widehat S_2^2} \\ &=\frac{\vert W^Tu_1-W^Tu_2\vert^2}{W^TS_1^2W+W^TS_2^2W}\\ &=\frac{W^T\vert u_1-u_2\vert^2W}{W^T(S_1^2+S_2^2)W}\\ &=\frac{W^TS_B^2W}{W^TS_W^2W} \end{aligned}
我们希望分母越小越好,分子越大越好:分母小,则每个类内部数据点比较聚集;分子大,则两个类别的距离较远。所以需要找出一个 W W 使 J ( W ) J(W) 的值最大。


转载:https://blog.csdn.net/tiantianfly00/article/details/102588676
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场