版权声明:本博所有原创文章,欢迎转载,转载请注明出处 https://blog.csdn.net/qq_34553043/article/details/82153896
西瓜书第3章公式推导二
3.3.1 LDA(线性判别分析—–二分类)
给定训练集,将样本投影到一条直线上,使得投影后的异类样本尽可能远离
argmax(||wTu0−wTu1||)
同类样本尽可能靠近
argmin(wT∑0w+wT∑1w)
使得对新样本进行分类时,对其投影到这条直线上,根据投影位置确定类别。其中
Xi,ui,∑i分别表示示例集合、均值向量、协方差矩阵。
即
J==||wTu0−wTu1||2wT∑0w+wT∑1wwT(u0−u1)(u0−u1)TwwT(∑0+∑1)w(18)(19)
定义
类内散度矩阵
令Sw==∑0+∑1∑x∈X0(x−u0)(x−u0)T+∑x∈X1(x−u1)(x−u1)T(20)(21)
定义
类间散度矩阵
令Sb=(u0−u1)(u0−u1)T
则目标为确定J最大时w的值
J=wTSbwwTSww
令
wTSww=1
原式变为
min(−wTSbw)
s.t.wTSww=1
根据拉格朗日乘子式可得
J=−wTSbw+λ(wTSww−1)
∂J∂w=0Sbw=λSww(u0−u1)(u0−u1)Tw=λSww
因为
(u0−u1)Tw
为常数,设为
λw
得
(u0−u1)λw=λSww
常数
λλw只是对w的放大或缩小,所以删掉得
w∗=S−1w(u0−u1)
若存在
Sw
不可逆,则利用奇异值分解(SVD)来求得。
3.3.2 LDA(多分类问题)
对于多分类的问题,
mi
表示第i类样本的个数。μ 为所有样本的样本均值,而
ui
则表示第i类样本的样本均值。此时我们得到的都是矩阵而不再是二分类的实数。类间散度矩阵:
Sb=∑i=1Nmi(ui−u)(ui−u)T
类内散度矩阵:
Sw=∑i=1N∑x∈Xi(x−ui)(x−ui)T
优化目标为
Jmax=|WTSbW||WTSwW|
或
Jmax=tr(WTSbW)tr(WTSwW)
参照二分类求解,可转化为
SbW=λ=λSwWS−1wSb(9)(10)
W∗=Jmax===|WTSbW||WTSwW||WTλSwW||WTSwW|λ(11)(12)(13)
Sb=∑i=1Nmi(ui−u)(ui−u)T
可以看出,
Sb
是K个秩一矩阵
(mk−m)(mk−m)T
的和(因为
(mk−m)
是秩一的向量),所以它的秩最大为K。并
Nm=N1m1+N2m2+…+Nkmk
,这K项中有一项可以被线性表出。 所以,
Sb
的秩最大为K-1。
所以参数W的值闭式解为矩阵
S−1ωSb
的d个最大特征值所对应的特征向量,其中d<=c-1。
因为特征向量的个数通常要远远少于原有数据特征的个数,因此线性判别分析也被视为一种经典的监督降维技术。
可参考教科书上的LDA为什么长这个样子?