LDA(线性判别分析,Linear Discriminant Analysis)是一种监督学习算法,主要用于分类任务,特别是在数据的类别标签已知的情况下。LDA的核心思想是通过寻找一个线性组合的特征空间,使得不同类别的样本之间的类间散度最大化,同时类内散度最小化,从而使得不同类别的样本更加可分。
核心概念:
-
目标:
LDA的目的是找到一个投影空间,使得类别间的距离最大化,同时类别内的距离最小化,最终提高分类的准确性。它通过构造新的特征(线性组合),使得数据的分布更加符合类别的划分。 -
模型原理:
- 类内散度矩阵 S W S_W SW:衡量同一类别内样本的分布情况。类内散度越小,说明同一类别的样本越集中。
- 类间散度矩阵 S B S_B SB:衡量不同类别间样本的分布情况。类间散度越大,说明不同类别的样本越分开。
LDA的目标是最大化类间散度和类内散度的比值,即:
J ( w ) = w T S B w w T S W w J(w) = \frac{w^T S_B w}{w^T S_W w} J(w)=wTSWwwTSBw
通过求解该优化问题,LDA找到一个或多个投影方向(线性组合),使得数据在这些方向上的投影最大化类间差异、最小化类内差异。 -
降维与分类:
- LDA不仅可以用于分类,也可以用于降维。在分类任务中,LDA会根据数据集的类别数决定要选择的投影维度(最多选择类别数-1维)。
- 降维后,数据投影到新空间中,通常采用最大化后验概率来进行分类。
-
线性判别函数:
- 对于每个类别,LDA定义了一个判别函数,根据新的投影空间,计算每个样本属于各类别的概率,最终将样本分配到概率最大的类别。
数学公式:
-
类内散度矩阵:
S W = ∑ i = 1 C ∑ x j ∈ C i ( x j − μ i ) ( x j − μ i ) T S_W = \sum_{i=1}^C \sum_{x_j \in C_i} (x_j - \mu_i)(x_j - \mu_i)^T SW=i=1∑Cxj∈Ci∑(xj−μi)(xj−μi)T
其中, μ i \mu_i μi 是类别 C i C_i Ci 的均值, x j x_j xj 是类别 C i C_i Ci 中的样本。 -
类间散度矩阵:
S B = ∑ i = 1 C N i ( μ i − μ ) ( μ i − μ ) T S_B = \sum_{i=1}^C N_i (\mu_i - \mu)(\mu_i - \mu)^T SB=i=1∑CNi(μi−μ)(μi−μ)T
其中, μ \mu μ 是所有样本的全局均值, N i N_i Ni 是类别 C i C_i Ci 的样本数。 -
判别函数:
最终,LDA会根据投影后的数据进行分类。类别 C k C_k Ck 的判别函数为:
g k ( x ) = x T Σ − 1 μ k − 1 2 μ k T Σ − 1 μ k + ln P ( C k ) g_k(x) = x^T \Sigma^{-1} \mu_k - \frac{1}{2} \mu_k^T \Sigma^{-1} \mu_k + \ln P(C_k) gk(x)=xTΣ−1μk−21μkTΣ−1μk+lnP(Ck)
其中, Σ \Sigma Σ 是协方差矩阵, P ( C k ) P(C_k) P(Ck) 是类别 C k C_k Ck 的先验概率。
优缺点:
-
优点:
- 计算高效:LDA在数据量较大时仍然能较为高效地进行计算,特别是在类别数目较少的情况下。
- 适合线性可分问题:当数据线性可分时,LDA能显著提高分类精度。
- 降维:LDA不仅能做分类,还能用于降维,使得数据集的维度得到有效压缩。
-
缺点:
- 假设条件严格:LDA假设每个类别的数据服从高斯分布,并且各类别的协方差矩阵相同,这在许多实际问题中难以满足。
- 对异常值敏感:LDA对异常值较为敏感,因为它基于均值和协方差矩阵计算类间类内散度,异常值会显著影响这些统计量。
- 线性决策边界:LDA只能处理线性可分的问题,对于非线性可分问题,性能较差。
应用场景:
- 文本分类:LDA常用于文档分类问题,如垃圾邮件识别、情感分析等。
- 人脸识别:在人脸识别任务中,LDA被用来降维并提高分类精度。
- 医学领域:在疾病预测、癌症检测等任务中,LDA能够用于区分不同的病理状态。
- 金融领域:用于信用评分、客户分类等。
LDA在很多场合下是一个有效的分类算法,尤其在特征维度较高时,它通过降低维度来提高分类的准确性。