关于特征提取和PCA VS LDA(linear Discriminant Analysis)

本文对比分析了PCA和LDA两种降维方法。PCA通过最大化数据方差来选择特征,而LDA则侧重于增强类别间的区分度。实验结果显示,在分类任务上LDA表现更佳。

关于特征提取和PCA VS LDA(linear Discriminant Analysis)(一)

  (2015-05-24 12:57:25)

周六日看了两个很不错的营养贴,其一曰:
linear Discriminant Analysis Bit by Bit
http://sebastianraschka.com/Articles/2014_python_lda.html
其二曰:Discover Feature Engineering, How to Engineer Features and How to Get Good at It
http://machinelearningmastery.com/discover-feature-engineering-how-to-engineer-features-and-how-to-get-good-at-it/

 

现在做一下总结:

(一) linear Discriminant Analysis Bit by Bit

比较了下两种降维方法 lda和PCA,作者认为LDA可能要更好一点,因为PCA降维的依据是:对整个数据集(假设每个样本用n个特征表示)中相互垂直的n个方向(这个方向由特征向量指定)依据其对应的特征值进行排序,其直观理解是,这批样本在n个方向上方差大小不同,找出最大的若干方差所对应的特征向量,然后以这几个特征向量所组成的子空间作为新样本空间,将原来样本都透射到这个子空间去。

而LDA所使用的方法是先计算出类内散点矩阵和类间散点矩阵:

 关于特征提取和PCA <wbr>VS <wbr>LDA(linear <wbr>Discriminant <wbr>Analysis)(一)

 关于特征提取和PCA <wbr>VS <wbr>LDA(linear <wbr>Discriminant <wbr>Analysis)(一)

然后类内矩阵的逆乘以类间矩阵A:

关于特征提取和PCA <wbr>VS <wbr>LDA(linear <wbr>Discriminant <wbr>Analysis)(一)

之后找出矩阵A的TOPnT特征值对应的特征向量,组成矩阵W,将原样本-特征矩阵X与新矩阵W相乘,得到X矩阵在新的子空间投影,也即降维后的样本-特征矩阵

关于特征提取和PCA <wbr>VS <wbr>LDA(linear <wbr>Discriminant <wbr>Analysis)(一)
下图是降维后各样本点的散点图,X轴是最大特征值对应的特征向量方向,Y轴是次大特征值对应的特征向量方向,从中可以看出X轴对各类样本点的区分相当好,而Y轴就要差很多。

关于特征提取和PCA <wbr>VS <wbr>LDA(linear <wbr>Discriminant <wbr>Analysis)(一)

使用PCA和LDA同时对样本集合X进行降维,都降至2维,得到的散点图如下:

关于特征提取和PCA <wbr>VS <wbr>LDA(linear <wbr>Discriminant <wbr>Analysis)(一)

可以看出,对于PCA降维后的样本散点图来说,其整体样本沿着X轴的方差最大,而沿着Y轴的方差次大。

而从LDA图可以看出,X轴方向对各类样本的区分度最好,而Y轴对各类样本的区分度次好。

所以可以看出,如果仅仅用于分类的话,LDA降维的效果要比PCA好一些。PCA更适合于解释样本在不同方向上的变化幅度大小。
我认为这篇帖子中,最值得一提的是作者对使用PCA的一些心得,比如如果特征值的分布很平均,那么我用PCA无济于事。

此外,他还提到LDA方法假设的几个前提:

(1)  样本数据是正态分布;

(2)  特征是随机独立的;

(3)  对于每个类别,具有一致的协方差矩阵(不太明白这块,原文是identical covariance matrix for every class,后来想了想,貌似是这个意思,每个样本都用n个特征,把这些特征做随机变量,对每个类别来说,n个随机变量就能形成一个协方差矩阵,对于所有的类来说,他们对应的协方差矩阵都是一样的--看了下面文章有感https://onlinecourses.science.psu.edu/stat557/book/export/html/35);

不过作者又讲到,这些假设只是将LDA用于分类器时候适用的条件,如果LDA用于降维的话,即使这些条件不满足,跑出来的结果也足够好。


 

3

0

<think>好的,用户想了解线性判别分析(LDA)在机器学习或数据分析中的应用。首先,我需要整理LDA的基本概念、原理、步骤以及应用场景。根据提供的引用资料,引用[2]提到LDA也称为Fisher线性判别分析,所以应该强调其分降维的功能。 用户可能不太清楚LDAPCA的区别,需要解释清楚。LDA是有监督的,考虑别标签,而PCA是无监督的,只考虑方差。这部分需要重点说明,帮助用户理解何时选择LDA。 接下来,用户可能需要知道如何实际应用LDA,比如使用Python的sklearn库。根据引用[1],代码示例中导入了LDA,因此需要提供一个简的代码示例,展示数据预处理、模型训练可视化步骤。同时,引用[4]提到了绘图问题,这里需要注意在示例代码中加入正确的绘图方法,避免用户遇到垂点位置错误的问题。 此外,用户的问题可能涉及LDA的数学原理。需要简要解释内散度间散度的计算,以及如何求解特征向量。这部分需要用LaTeX公式展示,比如内散度矩阵$S_W$间散度矩阵$S_B$,以及优化目标$S_W^{-1}S_B$的特征分解。注意公式必须用$$...$$格式,并独成段。 关于应用场景,引用[3]中的示例链接可能包含更多实际案例,可以提及人脸识别、生物特征分等,帮助用户理解LDA的实际用途。同时,要提到LDA的前提假设,比如正态分布同方差,这样用户在使用时能注意数据是否符合条件。 用户可能遇到的问题包括维度限制,比如当别数少时降维后的维度限制,以及小样本问题中的矩阵奇异情况。需要提醒用户注意这些点,并提供解决方法,比如使用正则化。 最后,根据用户的问题生成相关的进一步问题,比如与其他降维方法的比较、数学推导细节、参数调优等,这样可以帮助用户深入探索LDA的不同方面。</think>### 线性判别分析(LDA)详解 #### 1. **基本概念** 线性判别分析(Linear Discriminant Analysis, LDA)是一种有监督的机器学习方法,主要用于**分任务****数据降维**。其核心思想是通过投影将高维数据映射到低维空间,使得不同别数据之间的间距离最大化,同时内距离最小化[^2]。 #### 2. **核心公式** LDA的数学目标是优化**间散度矩阵$S_B$**与**内散度矩阵$S_W$**的比值: $$ J(w) = \frac{w^T S_B w}{w^T S_W w} $$ 通过求解广义特征值问题$S_W^{-1}S_B w = \lambda w$,得到最佳投影方向$w$。 #### 3. **应用步骤** 1. **计算内散度矩阵$S_W$**: $$ S_W = \sum_{i=1}^k \sum_{x \in C_i} (x - \mu_i)(x - \mu_i)^T $$ 其中$C_i$为第$i$样本集合,$\mu_i$为第$i$均值。 2. **计算间散度矩阵$S_B$**: $$ S_B = \sum_{i=1}^k N_i (\mu_i - \mu)(\mu_i - \mu)^T $$ $\mu$为全体样本均值,$N_i$为第$i$样本数。 3. **求解投影矩阵**:对矩阵$S_W^{-1}S_B$进行特征分解,选择前$d$大特征值对应的特征向量。 #### 4. **Python实现示例** ```python from sklearn.discriminant_analysis import LinearDiscriminantAnalysis as LDA from sklearn.datasets import load_iris import matplotlib.pyplot as plt # 加载数据 data = load_iris() X, y = data.data, data.target # LDA降维到2维 lda = LDA(n_components=2) X_lda = lda.fit_transform(X, y) # 可视化 plt.scatter(X_lda[:,0], X_lda[:,1], c=y, cmap='viridis') plt.xlabel('LDA Component 1') plt.ylabel('LDA Component 2') plt.show() ``` 注意:绘图时需确保坐标轴比例一致,避免出现引用[^4]中提到的投影点偏移问题。 #### 5. **应用场景** - **分任务**:如手写数字识别、生物特征分 - **数据可视化**:将高维数据降至2D/3D进行观察 - **特征压缩**:在语音识别、图像处理中减少计算量 #### 6. **与PCA的区别** | 特性 | LDA | PCA | |---------------------|------------------------------|-------------------| | 监督性 | 需要别标签(有监督) | 无监督 | | 优化目标 | 最大化间差异,最小化内差异| 最大化方差 | | 降维后维度上限 | $C-1$(C为别数) | 无限制 | #### 7. **注意事项** - 数据需满足**正态分布****同方差性**假设 - 当别数较少时,降维后维度受限制(最多$C-1$维) - 小样本问题中可能出现$S_W$矩阵奇异,可添加正则化项解决
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值