本文更新了2个主题:
对于带有类别标签的数据,应该如何设计目标函数,才能在降维过程中不丢失类别信息? 在这样的目标下我们应该如何解决这个问题呢? LDA和PCA是经典的降维算法。 如何从应用角度分析它们原理上的异同? 从数学推导的角度来看,两种降维算法在目标函数方面有何区别和联系?
如果觉得有用,记得点赞哦。 不喜欢就学不了~
--------------------------详细问题---------------------- ---- ----------
介绍:
LDA是一种监督学习降维技术,意味着其数据集的每个样本都有一个类别输出。 这与PCA不同。 PCA是一种无监督降维技术,不考虑样本类别输出。 以下图为例。 根据PCA算法,数据应该映射到方差最大的方向,即y轴方向。 但两种不同类别的数据会完全混合在一起,难以区分。 因此,使用PCA算法进行降维再分类的效果会很差。 但使用LDA算法,数据会被映射到x轴方向。
LDA的思想可以用一句话概括,那就是“投影后类内方差最小,类间方差最大”。 这意味着什么? 我们需要将数据投影到低维度。 投影后,我们希望每一类数据的投影点尽可能靠近,并且不同类别数据的类别中心之间的距离尽可能大。
刘峰:——LDA线性判别分析原理
喻喻喻喻:LDA线性判别分析
1. 对于有类别标签的数据,应该如何设计目标函数,才能在降维过程中不丢失类别信息? 在这样的目标下我们应该如何解决这个问题呢?
LDA的任务是分类。 因此,只要找到一个投影方向w,就可以尽可能地将投影样本按照原来的类别进行分离。
我们从一个简单的二分类问题开始,样本来自两个类别:C_1 和 C_2。 这两个类别的均值是: \mu=\frac{1}{N_1}\sum_{x\in C_1}x 、 \mu =\frac{1}{N_2}\sum_{x\in C_2}x 。 为了达到分类效果,我们希望投影后两个类别之间的距离尽可能大,即:(C_1,C_2)=||\tilde{\mu_1}-\tilde{\mu_2}| |_2^2 \ \
其中,\tilde{\mu_1},\tilde{\mu_2}表示两类中心在w方向的投影向量,\tilde{\mu_1}=w^\top\mu_1,\tilde{\mu_2 }=w ^\top\mu_2,因此,我们需要优化的问题是:
当w方向与(\mu_1-\mu_2)一致时,距离达到最大值。 例如,当下图中黄色和棕色类别的样本点降维时,如果遵循两个类别投影中心距离最大化的准则,则样本点将被投影到黑色线上以下。 但本来可以线性划分,但是投影后,出现了一定程度的重叠,如图(a)所示,这显然不好。 我们希望得到的投影结果如图(b)所示。 虽然投影后两个类别中心之间的距离有所减小,但投影后样本的可区分性确实得到了提高。
仔细看,投影的样本点似乎更集中在每个类别中,也就是说每个类别内的方差比图a中的要小。 这就是LDA的中心思想:最大化类间距离,最小化类内距离。
我们将整个数据集的类内方差定义为每个类的方差之和,并将目标函数定义为类间距离与类内距离的比值。 我们需要最大化的是:
定义类间散度矩阵:
S_B=(\mu_1-\mu_2)(\mu_1-\mu_2)^\top\\ 类间散度矩阵: S_w=\sum_{x \in C_i}(x-\mu_i)(x-\mu_i)^ \顶部 \\
此时,J(w)可写为:
然后,
由于我们现在正在解决二分类问题,因此 w^\top S_ww 和 w^\top S_Bw 是两个数字。 我们令\=J(w)=\frac{w^\top S_Bw}{w^ \top S_ww} ,则有,S_Bw=\S_ww。
整理一下,得到,S_w^{-1}S_Bw=\w。
从这里可以看出,我们的最大化目标对应的是一个矩阵的特征值,所以这个问题就从LDA降维转化为求矩阵特征向量的问题。
J(w)对应矩阵S_w^{-1}S_B的最大特征值,投影方向就是该特征值对应的特征向量。 也就是说,我们只需要求出样本的均值和类内方差,就可以立即得到最佳投影方向w
2.LDA和PCA是经典的降维算法。 如何从应用角度分析它们原理的异同? 从数学推导的角度来看,两种降维算法在目标函数方面有何区别和联系?
首先,将LDA扩展到多类别高维情况,以对应PCA中的求解问题。
假设有N个类别,最终需要将特征降维到d维。 因此,我们需要找到一个d维投影超平面W=\left\{\,\,...,\\right\},使得投影后的样本点满足LDA的目标,最大化类间距离,最小化类内距离。
回顾两个散度矩阵,当类别增加到N时,类内散度矩阵S_w=\sum_{x \in C_i}(x-\mu_i)(x-\mu_i)^\top仍然满足定义,而前面两个类问题的类间散度矩阵S_b=(\mu_1-\mu_2)(\mu_1-\mu_2)^\top在类别数增加后就不能遵循原来的定义了。 下图展示了三类样本的分布情况。 \mu 表示这三个中心的均值(即所有样本的中心),S_{wi} 表示第 i 类的类内散度。 于是定义一个新的矩阵S_{t}来表示全局总体散度,称为全局散度矩阵: S_t=\sum_{i=1}^{n}(x_i-\mu)(x_i-\mu) ^\顶部 \\
如果将全局散度定义为类内散度和类间散度之和,即S_t=S_b+S_w,则类间散度矩阵可以表示为:
其中,m_j为第j个类别的样本数,N为类别总数。
从上式可以看出,类间散度代表了每个类别的中心到全局真实中心的加权距离。 我们通过最大化类间散度实际上优化的是投影后每个类的中心距离全局中心足够远。
根据LDA原理,我们可以将最大化目标定义为:
其中,W为需要求解的投影超平面,W^\top W=I。 根据PCA和LDA的一些结论,我们可以推导出最大化J(W)对应于以下广义特征值求解问题:
求解最佳投影平面 W=\left\{ \,\,...,\ \right\} ,即求解 S_w^ 的前 d 个最大特征值对应的特征向量组成的矩阵{-1}S_b矩阵。 将原来的特征空间投影到新的d维空间中。
至此,我们已经获得了类似于PCA步骤的LDA解决方案,但具有具有多个类别标签的高维数据:
(1) 计算数据集中每个类别样本的均值向量mu_j,以及整体均值向量mu。
(2)计算类内散度矩阵S_w、全局散度矩阵S_t,得到类间散度矩阵S_b=S_t-S_w。
(3)对矩阵S_w^{-1}S_b进行特征值分解,将特征值从大到小排列。
(4) 取前d个最大特征值对应的特征向量\,\,...,\,通过如下映射将n维样本映射到d维:
从这两种降维方法的求解过程来看,它们确实非常相似,但相应的原理却有很大不同。
PCA 选择投影数据中方差最大的方向。 PCA 假设方差越大,信息量越大。 用主成分来表示原始数据可以去除冗余维度,达到降维的目的。
LDA选择投影后类内方差较小、类间方差较大的方向。 使用类别标签信息是为了找到数据中的判别维度,以便将原始数据在这些方向上投影后能够尽可能地区分不同的类别。
例如,以推荐系统为例,如果我们想分析一个用户的习惯和偏好特征,我们可以使用PCA先降维,过滤掉一些(方差较小的)噪声特征。 但如果我们想根据用户现有的特征计算出哪些用户与他的偏好相似,那么就应该使用LDA来降低数据的维度,因为这些用户的每一个特征都必须是可区分的。 以面部识别为例。
基于PCA的人脸识别方法也称为特征脸方法,最终保留了最佳的描述性特征(主成分)。
LDA降维时,可以保留更多的分类特征,使得投影后不同人脸的特征有一定程度的区分。 PCA主要用于无监督任务。
LDA主要用于监督任务。