线性判别分析(Linear Discriminant Analysis,LDA)是一种用于分类和降维的技术。其主要目的是找到一个线性变换,将数据投影到一个低维空间,使得在这个新空间中,不同类别的数据能够更好地分离。
LDA的基本思路是最大化类间方差(between-class variance)与类内方差(within-class variance)的比率。通过这个过程,LDA试图找到一个最佳的投影方向,使得投影后的数据点在同一类别内尽可能接近,而不同类别的中心点尽可能分开。
计算均值向量:
计算类内散布矩阵(( \mathbf{S}_W )):
计算类间散布矩阵(( \mathbf{S}_B )):
求解特征值和特征向量:
投影数据:
LDA的目标是投影数据,使得同一类别的样本在投影后尽可能接近,而不同类别的样本尽可能分开。它通过分析数据的类内和类间散布来实现这一目标,是一种有效的线性分类和降维工具。
线性判别分析(Linear Discriminant Analysis, LDA)是一种用于模式分类和特征提取的线性算法。它的主要目标是找到一个投影方向,使得投影后样本集的类间方差最大化,类内方差最小化,从而提高分类效果。底层数学原理可以从以下几个方面进行讲解:
给定一个训练数据集,样本分为 K K K类,其中第 k k k类有 n k n_k nk个样本。每个样本是一个 d d d维向量。设第 k k k类的样本集合为 X k X_k Xk。
LDA的目标是找到一个投影矩阵 W \mathbf{W} W,将 d d d维特征空间转到低维特征空间(一般为 K − 1 K-1 K−1维),使得投影后的类之间尽可能可分。
类内散度矩阵度量了同一类样本的散布。对第 k k k类,它可以表示为:
S k = ∑ x i ∈ X k ( x i − μ k ) ( x i − μ k ) T \mathbf{S}_k = \sum_{x_i \in X_k} (x_i - \mu_k)(x_i - \mu_k)^T Sk=xi∈Xk∑(xi−μk)(xi−μk)T
其中, μ k \mu_k μk是第 k k k类样本的均值: μ k = 1 n k ∑ x i ∈ X k x i \mu_k = \frac{1}{n_k} \sum_{x_i \in X_k} x_i μk=nk1∑xi∈Xkxi。
整个数据集的类内散度矩阵为:
S W = ∑ k = 1 K S k \mathbf{S}_W = \sum_{k=1}^K \mathbf{S}_k SW=k=1∑KSk
类间散度矩阵度量了不同类样本的离散程度,定义为:
S B = ∑ k = 1 K n k ( μ k − μ ) ( μ k − μ ) T \mathbf{S}_B = \sum_{k=1}^K n_k (\mu_k - \mu)(\mu_k - \mu)^T SB=k=1∑Knk(μk−μ)(μk−μ)T
其中, μ \mu μ是所有样本的全局均值: μ = 1 N ∑ i = 1 N x i \mu = \frac{1}{N} \sum_{i=1}^N x_i μ=N1∑i=1Nxi, N N N是总样本数。
LDA的目标是找到投影矩阵 W \mathbf{W} W,使得以下目标函数达到最大化:
J ( W ) = ∣ W T S B W ∣ ∣ W T S W W ∣ J(\mathbf{W}) = \frac{|\mathbf{W}^T \mathbf{S}_B \mathbf{W}|}{|\mathbf{W}^T \mathbf{S}_W \mathbf{W}|} J(W)=∣WTSWW∣∣WTSBW∣
这里的目标是最大化类间散度,同时最小化类内散度。
通过拉格朗日乘数法,将问题转化为对广义特征值问题的求解:
S B w = λ S W w \mathbf{S}_B \mathbf{w} = \lambda \mathbf{S}_W \mathbf{w} SBw=λSWw
通过求解上述广义特征值问题,可以得到特征向量 w \mathbf{w} w,这些特征向量组成的矩阵就是我们要找的投影矩阵 W \mathbf{W} W。
得到投影矩阵 W \mathbf{W} W后,原始数据可以通过以下方式进行投影:
y i = W T x i y_i = \mathbf{W}^T x_i yi=WTxi
投影后的数据可以用于后续的分类或聚类分析。
线性判别分析通过最大化类间散度和最小化类内散度使不同类别的数据在低维空间中能够更好地分开,是一种经典的降维和分类方法。它所依赖的数学基础是关于矩阵的散布度量以及特征值问题的求解。
线性判别分析(LDA)是一种用于分类的降维技术,尤其擅长处理多分类任务。其目标是通过寻找一个投影,将数据投影到一个低维的空间,同时最大化类间距离与最小化类内距离。以下是 LDA 的一些关键点,常出现在面试中:
LDA 试图在保留数据集的判别信息的同时减少数据的维度。它通过以下步骤实现:
最大化类间方差(Between-class variance):使不同类之间的中心距离尽可能大。
最小化类内方差(Within-class variance):使同一类内部的样本点尽可能紧凑。
给定一个有 ( K ) 个类的样本集,LDA 先定义散布矩阵:
S W = ∑ c = 1 K ∑ x ∈ C c ( x − μ c ) ( x − μ c ) T S_W = \sum_{c=1}^{K} \sum_{x \in C_c} (x - \mu_c)(x - \mu_c)^T SW=c=1∑Kx∈Cc∑(x−μc)(x−μc)T
其中,( C_c ) 表示第 ( c ) 类,( \mu_c ) 是第 ( c ) 类的均值。
S B = ∑ c = 1 K N c ( μ c − μ ) ( μ c − μ ) T S_B = \sum_{c=1}^{K} N_c (\mu_c - \mu)(\mu_c - \mu)^T SB=c=1∑KNc(μc−μ)(μc−μ)T
其中,( N_c ) 是第 ( c ) 类中的样本数量,( \mu ) 是所有样本的全局均值。
LDA 通过最大化下述目标函数来找到最佳投影向量 ( W ):
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
通过对该函数求导,问题转化为求解如下广义特征值问题:
S W − 1 S B W = λ W S_W^{-1}S_B W = \lambda W SW−1SBW=λW
最佳的投影向量 ( W ) 是这个广义特征值问题的特征向量。
LDA 的输出通常是几个一组的特征向量,通常选择前 ( K-1 ) 个特征向量用于降维,其中 ( K ) 是类的数量。
优点:
缺点: