线性判别分析
线性判别分析(Linear Discriminant Analysis,LDA)亦称 Fisher 判别分析。其基本思想是:将训练样本投影到低维超平面上,使得同类的样例尽可能近,不同类的样例尽可能远。在对新样本进行分类时,将其投影到同样的超平面上,再根据投影点的位置来确定新样本的类别。
给定的数据集
D={(x1,y1),(x2,y2),⋯,(xN,yN)}
包含 N 个样本,p 个特征。其中,第 i 个样本的特征向量为 xi=(xi1,xi2,⋯,xip)T 。目标变量 yi∈{c1,c2,⋯,cK} 。
二分类
我们先定义Nk为第 k 类样本的个数
k=1∑KNk=N
Xk为第 k 类样本的特征集合
Xk={x∣y=ck, (x,y)∈D}
μk为第 k 类样本均值向量
μk=Nk1x∈Xk∑x
Σk为第 k 类样本协方差矩阵
Σk=Nk1x∈Xk∑(x−μk)(x−μk)T
首先从比较简单的二分类为例 y∈{0,1},若将数据投影到直线 w 上,则对任意一点 x,它在直线 w 的投影为 wTx 。
- LDA需要让不同类别的数据的类别中心之间的距离尽可能的大,也就是要最大化 ∥wTμ0−wTμ1∥22;
- 同时希望同一种类别数据的投影点尽可能的接近,也就是要同类样本投影点的方差最小化 wTΣ0w+wTΣ1w。
综上所述,我们的优化目标为:
wmaxwTΣ0w+wTΣ1w∥wTμ0−wTμ1∥22
目标函数
J(w)=wTΣ0w+wTΣ1w∥wTμ0−wTμ1∥22=wT(Σ0+Σ1)wwT(μ0−μ1)(μ0−μ1)TwT
其中,Sw为类内散度矩阵(within-class scatter matrix)
Sw=Σ0+Σ1
Sb为类间散度矩阵(between-class scaltter matrix)
Sb=(μ0−μ1)(μ0−μ1)T
目标函数重写为
J(w)=wTSwwwTSbw
上式就是广义瑞利商。要取得最大值,只需对目标函数求导并等于0,可得到等式
Sbw(wTSww)=Sww(wTSbw)
重新代入目标函数可知
Sw−1Sbw=λw
这是一个特征值分解问题,我们目标函数的最大化就对应了矩阵 Sw−1Sb 的最大特征值,而投影方向就是这个特征值对应的特征向量。
多分类
可以将 LDA 推广到多分类任务中,目标变量 yi∈{c1,c2,⋯,cK} 。
定义类内散度矩阵(within-class scatter matrix)
Sw=k=1∑KΣk
类间散度矩阵(between-class scaltter matrix)
Sb=k=1∑KNk(μk−μ)(μk−μ)T
其中 μ 为所有样本均值向量
μ=N1i=1∑Nx
常见的最大化目标函数为
J(W)=tr(WTSwW)tr(WTSbW)
对目标函数求导并等于0,可得到等式
tr(WTSwW)SbW=tr(WTSbW)SwW
重新代入目标函数可知
SbW=λSwW
W 的闭式解则是 Sw−1Sb 的 K一1 个最大广义特征值所对应的特征向量组成的矩阵。
由于W是一个利用了样本的类别得到的投影矩阵,则多分类 LDA 将样本投影到 K−1 维空间,K−1 通常远小子数据原有的特征数。于是,可通过这个投影来减小样本点的维数,且投影过程中使用了类别信息,因此 LDA也常被视为一种经典的监督降维技术。
二次判别分析
下面来介绍以概率的角度来实现线性判别分析的方法。我们的目的就是求在输入为 x 的情况下分类为 ck 的概率最大的分类:
y^=argckmaxP(y=ck∣x)
利用贝叶斯定理,类别 ck 的条件概率为
P(y=ck∣x)=P(x)P(x∣y=ck)P(y=ck)
假设我们的每个类别服从高斯分布
P(x∣y=ck)=(2π)pdetΣk1exp(−21(x−μk)TΣk−1(x−μk))
其中,协方差矩阵Σk 为对称阵。
决策边界:为方便计算,我们取对数条件概率进行比较。对任意两个类别cs和ct,取
δ(x)=lnP(y=cs∣x)−lnP(y=ct∣x)
输出比较结果
y^st={cs,ct,if δ≤0otherwise
决策边界为 δ(x)=0,即
lnP(y=cs∣x)=lnP(y=ct∣x)
我们先来化简下对数概率
lnP(y=ck∣x)=lnP(x∣y=ck)+lnP(y=ck)−lnP(x)=−21(x−μk)TΣk−1(x−μk)−21ln(detΣk−1)+lnP(y=ck)+const=−21xTΣk−1x+μkTΣk−1x−21μkTΣk−1μk+lnP(y=ck)−21ln(detΣk−1)+const=xTAkx+wkTx+bk+const
其中
Ak=−21Σk−1,wkT=μkTΣk−1,bk=−21μkTΣk−1μk+lnP(y=ck)−21ln(detΣk−1)
可以看到,上式是一个关于 x 的二次函数
- 当类别的协方差矩阵不同时,生成的决策边界也是二次型的,称为二次判别分析(Quadratic Discriminant Analysis, QDA)
- 当类别的协方差矩阵相同时,决策边界将会消除二次项,变成关于 x 的线性函数,于是得到了线性判别分析。
实际应用中我们不知道高斯分布的参数,我们需要用我们的训练数据去估计它们。LDA使用估计协方差矩阵的加权平均值作为公共协方差矩阵,其中权重是类别中的样本量:
Σ^=N∑k=1KNkΣk
如果 LDA中的协方差矩阵是单位阵 Σ=I并且先验概率相等,则LDA只需对比与类中心的欧几里得距离
lnP(y=ck∣x)∝−21(x−μk)T(x−μk)=−21∥x−μk∥22
如果 LDA中的协方差矩阵非单位阵并且先验概率相等,则为马氏距离
lnP(y=ck∣x)∝−21(x−μk)TΣk−1(x−μk)