因为$(u_1-u_2)^Tw$是一个标量,所以可以看出
需要注意的是$S_W$在大多数情况下是不可逆的,所以为了解决这个问题,通常有两种方法
- 令$S_W=S_W+\gamma I$,其中$I$是一个特别小的数,这样$S_W$一定可逆
- 先使用PCA对数据局进行降维,使得降维后的数据的$S_W$一定可逆
其中$\mu$表示所有的特征值得均值
而$\mu_i$求的是每一个分类的均值,在而分类中$S_B$表示的是类间的差值,但是在多分类中肯定无法这样计算,所以分类中计算的是每个分类中心点到所以分类中心点的方差。C表示的是分类数。
最后得到的结果和原来还是一样
所以总结下来LDA的计算流程为
- 计算每个分类的特征中心值$\mu$
- 计算每个分类的类内方差$S_W$
- 计算每个分类的类间方差$S_B$
- 计算评价函数$J(w)=\frac{wS_Bw^t}{wS_ww^t}$
- 利用拉格朗日得到最后的结果
LDA用于降维,和PCA有很多相同,也有很多不同的地方,因此值得好好的比较一下两者的降维异同点。
首先我们看看相同点:
1)两者均可以对数据进行降维。
2)两者在降维时均使用了矩阵特征分解的思想。
3)两者都假设数据符合高斯分布。
我们接着看看不同点:
1)LDA是有监督的降维方法,而PCA是无监督的降维方法
2)LDA降维最多降到类别数k-1的维数,而PCA没有这个限制。,所以
3)LDA除了可以用于降维,还可以用于分类。
4)LDA选择分类性能最好的投影方向,而PCA选择样本点投影具有最大方差的方向。
这点可以从下图形象的看出,在某些数据分布下LDA比PCA降维较优。
感觉使用latex写公式真的爽的一笔啊