线性回归(三)

线性判别分析

线性判别分析(Linear Discriminant Analysis,简称LDA)是一种经典的线性学习方法,在二分类问题上因为最早由Fisher, 1936] 提出,亦称“Fisher判别分析”

思想原理(模型)

从几何的角度,让全体训练样本经过投影
给定训练样例集,设法将样例投影到一条直线上,使得同类样例的投影点尽可能接近(同类样本方差小),异类样例尽可能原理,在对新鲜样本进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定新样本的类别.请添加图片描述

目标函数

为了使同类样例的投影点尽可能接近,可以让同类样例投影点的协方差尽可能小
w T ∑ 0 w + w T ∑ 1 w w^T\textstyle\sum_0w+w^T\textstyle\sum_1w wT0w+wT1w
而想要异类样例的投影点尽可能远离,可以让类中心之间的距离尽可能大
∣ ∣ w T μ 0 − w T μ 1 ∣ ∣ 2 2 ||w^T\mu_0-w^T\mu_1||^2_2 wTμ0wTμ122
同时考虑两者,则可以得到最大化的目标
J = ∣ ∣ w T μ 0 − w T μ 1 ∣ ∣ 2 2 w T ∑ 0 w + w T ∑ 1 w = w T ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T w w T ( ∑ 0 + ∑ 1 ) w J=\frac{||w^T\mu_0-w^T\mu_1||^2_2}{w^T\textstyle\sum_0w+w^T\textstyle\sum_1w}=\frac{w^T(\mu_0-\mu_1)(\mu_0-\mu_1)^Tw}{w^T(\textstyle\sum_0+\textstyle\sum_1)w} J=wT0w+wT1wwTμ0wTμ122=wT(0+1)wwT(μ0μ1)(μ0μ1)Tw
定义“类内散度矩阵”
S w = ∑ 0 + ∑ 1 = ∑ x ∈ X 0 ( x − μ 0 ) ( x − μ 0 ) T + ∑ x ∈ X 1 ( x − μ 1 ) ( x − μ 1 ) T S_w=\textstyle\sum_0+\textstyle\sum_1=\displaystyle\sum_{x∈X_0}(x-\mu_0)(x-\mu_0)^T+\displaystyle\sum_{x∈X_1}(x-\mu_1)(x-\mu_1)^T Sw=0+1=xX0(xμ0)(xμ0)T+xX1(xμ1)(xμ1)T
定义“类间散度矩阵”
S b = ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) S_b=(\mu_0-\mu_1)(\mu_0-\mu_1) Sb=(μ0μ1)(μ0μ1)
目标函数可以重写为
J = w T S b w w T S w w J=\frac{w^TS_bw}{w^TS_ww} J=wTSwwwTSbw
如何确定w呢,注意观察上述式子,可以知道目标函数分子分母是关于w的二次项,所以解与w的长度无关,只与其方向有关,为了不失其一般性,可以令
w T S w w = 1 w^TS_ww=1 wTSww=1
问题可以转化为
min ⁡ w w T S b w \min\limits_ww^TS_bw wminwTSbw
s . t . w T S w w = 1 s.t.w^TS_ww=1 s.t.wTSww=1
这样可以将问题转化为在一个等式约束条件下,另一个函数求极值的问题。所以可以想到高数里的拉格朗日乘子法
S b w = λ S w w S_bw=\lambda S_ww Sbw=λSww
由于
( μ 0 − μ 1 ) T w (\mu_0-\mu_1)^Tw (μ0μ1)Tw
是标量
所以
S b w = λ ( μ 0 − μ 1 ) S_bw=\lambda (\mu_0-\mu_1) Sbw=λ(μ0μ1)
最后得到
w = S w − 1 ( μ 0 − μ 1 ) w=S^{-1}_w(\mu_0-\mu_1) w=Sw1(μ0μ1)
考虑到数值解的稳定性,在实践中通常是对S_w进行奇异值分解
S w = U ∑ V T S_w=U\textstyle\sum V^T Sw=UVT
S w − 1 = V ∑ − 1 U S_w^{-1}=V\textstyle\sum^{-1} U Sw1=V1U
LDA算法还可以推广到多任务学习中,我们可以定义“全局散度矩阵”
S t = S b + S w = ∑ i = 1 m ( x i − μ ) ( x i − μ 1 ) T S_t=S_b+S_w=\displaystyle\sum_{i=1}^m(x_i-\mu)(x_i-\mu_1)^T St=Sb+Sw=i=1m(xiμ)(xiμ1)T
其中将类内散度矩阵定义为每个类别的散度矩阵之和
S w = ∑ i = 1 N S w i S_w=\displaystyle\sum_{i=1}^NS_{w_i} Sw=i=1NSwi
其中
S w i = ∑ x ∈ X i ( x − μ i ) ( x − μ i ) T S_{w_i}=\displaystyle\sum_{x∈X_i}(x-\mu_i)(x-\mu_i)^T Swi=xXi(xμi)(xμi)T
由上述式子们可得
S b = S t − S w = ∑ i = 1 N m i ( μ i − μ ) ( μ i − μ ) T S_b=S_t-S_w=\displaystyle\sum_{i=1}^Nm_i(\mu_i-\mu)(\mu_i-\mu)^T Sb=StSw=i=1Nmi(μiμ)(μiμ)T
显然,多分类LDA可以有多种实现方法,使用Sb,Sw,St中饭任何三个就可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值