1. LDA 与 PCA
- 线性判别分析(Linear Discriminant Analysis, LDA)和主成分析法(PCA)都可以用于数据分类和降低维度。
- 但 LDA 在降维的同时尽可能的保留不同类数据的差别。
- LDA 使不同类的数据它们的差别尽可能的大,而使同一类的数据它们的差别尽可能的小。即让类型间的差别与同一类型内的差别的比值尽可能的大。
- LDA 比 PCA 更好的体现出数据的分布(即类型间的差别)。
一张图体现 PCA 与 LDA 的区别:
PCA能体现数据的特征(比如整体的走势 or 斜率),但两类数据投影后混在一起。LDA方法(or Fisher Linear Discriminant, FLD)也能把数据从二维降到一维,并且投影后两类数据分开,更能够体现数据间的区别。
2. LDA计算步骤
1. 获取数据
有 n 组数据,每组数据 m 维,分为 c 类,n、m、c 已知。
设第 i 类内有 ni 个数据,显然:
数据按行排列,每一类组织成一个矩阵。第 i 类数据表示为:
整个数据集合 X 表示为:
整个数据集合 X 是 n * m 维的,我们寻求一个变换矩阵 W 使变换后的矩阵是 (c-1) * m维,即把每组数据从 n 维降到 c-1 维。
即:,W 是 m * (c - 1) 维。
2. 计算各类的平均值和协方差
对于每一个类 Xi 计算它的平均值和方差:
平均值:
协方差:
(m * m 维)
整个数据集合 X 的平均值:
3. 计算类内和类间的分散度
类内分散度(Between-class scatter):
类间分散度(Within-class scatter):
我们的目标是使投影后的数据类间风散度和类内风散度的比值尽可能的大。
求解过程用到了导数,详细计算过程可以看后面列出的参考文档。
4. 计算特征值和特征向量
计算矩阵: 阵的特征值和特征向量。
传统意义上只有对称矩阵才有特征值和特征向量,如果对于一个一般的矩阵 A 也满足:
传则λ 和 x 称为矩阵 A 的广义特征值(general eigenvalue)和广义特征向量(general eigenvector)。
特征值记为:Λ = [ λ1, λ2, ... ,λc-1 ]
特征向量记为:
特征向量 V 是 c-1 * m 维,就是我们需要的变换矩阵 W.
Reference:
- A Tutorial on Data Reduction:Linear Discriminant Analysis (LDA) [Aly A. Farag, Shireen Y. Elhabian, CVIP Lab University of Louisville]
- L10: Linear discriminants analysis