特征转换方法比较(PCA、ICA、LDA)

本文对比分析PCA、ICA、LDA三种常见降维技术,探讨各自原理、适用场景及优缺点,帮助读者理解特征转换方法,提升数据预处理能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        随着机器学习和数据科学的发展,大数据的分析与处理在许多领域得到了应用。这通常需要收集很大的数据,并对多维数据进行观测,然而特征越多不仅仅会增加研究者的分析工作量和难度,同时随着特征的增加,为了不引发维度灾难,对数据的需求也会以指数速度增长。为此很多的学者对此进行研究发现特征之间存在相关性,做了很多降维的工作,并提出了许多优秀的特征转换方法,如主成分分析(PCA),独立成分分析(ICA),线性判别分析(LDA)等,本文主要对目前应用的较多的PCA、ICA、LDA的方法原理进行总结,并比较其方法的异同点。

一、主成分分析(PCA)

1、概念

        PCA(Principal Component Analysis),即主成分分析方法,是一种使用最广泛的数据降维算法。PCA的主要思想是将n维特征映射到k维上,这k维是全新的正交特征也被称为主成分,是在原有n维特征的基础上重新构造出来的k维特征。PCA的工作就是从原始的空间中顺序地找一组相互正交的坐标轴,新的坐标轴的选择与数据本身是密切相关的。其中,第一个新坐标轴选择是原始数据中方差最大的方向,第二个新坐标轴选取是与第一个坐标轴正交的平面中使得方差最大的,第三个轴是与第1,2个轴正交的平面中方差最大的,依次类推,可以得到n个这样的坐标轴。通过这种方式获得的新的坐标轴,我们发现,大部分方差都包含在前面k个坐标轴中,后面的坐标轴所含的方差几乎为0。于是,我们可以忽略余下的坐标轴,只保留前面k个含有绝大部分方差的坐标轴。事实上,这相当于只保留包含绝大部分方差的维度特征,而忽略包含方差几乎为0的特征维度,实现对数据特征的降维处理。


图一 PCA坐标轴转换示例(二维)

2、计算步骤
PCA的主要计算步骤分为以下5步(假设有m条n维特征的数据):
(1)、去平均值,即每一位特征减去各自的平均值;

(2)、计算协方差矩阵;
在这里插入图片描述
(3)、计算协方差矩阵的特征值与特征向量;
(4)、对特征值从大到小排序,并保留最大的个特征向量;
(5)、将数据转换到个特征向量构建的新空间中;

       而为何PCA可以找到k维理想特征呢?其来自于两种解释:最大方差理论及最小化降维造成的损失,由于非本文介绍重点,详细可见参考文献[1]。

二、独立成分分析(ICA)

1、概念
       独立成分分析在很多的领域都得到了应用,其本质在于认为采集到的信号是由多个原独立的成分根据不同的权重加权求和得到的结果,如:
在这里插入图片描述
可以变换得到:
在这里插入图片描述
       由上式可得,ICA需要通过X去计算S和W两个未知量,用求解未知量的方法无法获得两个解,为此作者做了个约束,通过对W迭代求解的方法,获得一组S和W,使其生成的X在这组样本中出现的概率最大,则是最优的迭代效果,这样的方法有很多,而且不同求取最优化的方法和不同的初始化可能会收敛得到不同解,原文中作者用了极大似然估计法,所以下文主要介绍的是这个方法。
设记录随机变量X的值m次,则形成的数据集:
在这里插入图片描述
极大似然估计去估计的是一个概率,为此我们需要将x的概率转换为对s的概率问题,即:
在这里插入图片描述
要对整个数据集进行预测,则数据集出现概率式为:
在这里插入图片描述
由于要进行迭代,直接对L计算偏导比较复杂,对两端取自然对数:
在这里插入图片描述
对lnL求偏导的过程比较复杂,详细可见原文推导,之后获得偏导数的简化式为:
在这里插入图片描述
其中Z与选取的ps(wx)方法有关。
W的更新公式为:
在这里插入图片描述
2、计算步骤
       在实际使用的过程中,ICA虽然简洁但是很难收敛到一个合理的结果,为此在实际应用中应用的比较多的是FastICA,其计算步骤与如下:
(1)、对采集样本去均值和白化处理;
(2)、设置迭代次数,初始化权重W;
(3)、正交化,这是避免提取出重复的源信号s;
(4)、迭代权重,对迭代权重归一化;
(5)、判断是否收敛,没有的话返回(3)继续,直到收敛为止;

图二 FastICA计算流程图

三、线性判别分析(LDA)

1、概念
       线性判别式分析(Linear Discriminant Analysis, LDA),也叫做Fisher线性判别(Fisher Linear Discriminant ,FLD),是模式识别的经典算法,它是在1996年由Belhumeur引入模式识别和人工智能领域的。线性鉴别分析的基本思想是将高维的模式样本投影到最佳鉴别矢量空间,以达到抽取分类信息和压缩特征空间维数的效果,投影后保证模式样本在新的子空间有最大的类间距离和最小的类内距离,即模式在该空间中有最佳的可分离性。因此,它是一种有效的特征抽取方法。使用这种方法能够使投影后模式样本的类间散布矩阵最大,并且同时类内散布矩阵最小。就是说,它能够保证投影后模式样本在新的空间中有最小的类内距离和最大的类间距离,即模式在该空间中有最佳的可分离性。

图三 LDA映射示意图

其通过Fisher鉴别准则表达式来判别最佳分离性,其式子为:
在这里插入图片描述
在这里插入图片描述
2、计算步骤
LDA和PCA的计算步骤存在了相似性,与其不同的是LDA是有监督过程,其计算步骤如下(假设有m条n维特征的数据):
(1)、对数据进行标准化处理;
(2)、对每一个类别计算n维均值向量及总体样本的均值向量;
在这里插入图片描述
(3)、计算类间离散度矩阵Sb和类内离散度矩阵Sw,即:
在这里插入图片描述
以上只是一种类间离散度矩阵Sb和类内离散度矩阵Sw的计算方法,也可以通过加入先验概率来构建矩阵。
(4)、计算矩阵Sw^(-1)Sb的特征值以及对应的特征向量;
(5)、对特征值从大到小排序,并保留k最大的个特征向量;
(6)、将数据转换到k个特征向量构建的新空间中;

四、异同点比较

在实际应用中,通常很难用一个实验去比较三种方法的优越性,而且PCA做为一种稳定的无监督方法,在使用中也经常会和其他两种方法放在一起应用。如何在不同的数据中有效的应用这些方法,也一直是研究者在总结研究的工作。

1、通用性比较:
       相比于其他的两种方法,PCA具有较强的通用性。与ICA相比,PCA没有权重初始化和优化方法不同易收敛到不同的值的独立成分的问题,容易获得稳定的主成分。同时与LDA相比,PCA不需要去太过在意数据本身的类别信息,在预测问题中,可以加入测试数据一起进行降维,减少训练和测试数据间的分布差异。同时对于小样本的数据预测上,PCA比LDA具有更强的鲁棒性,不会过拟合训练数据。
       PCA、LDA的假设上都假设了数据的分布为高斯分布,为此在一些非高斯数据上,这两种方法的降维效果不一定好,而ICA假设的是非高斯分布,反而在高斯分布的数据上取得较差的效果。

2、降维后数据比较:
        PCA与LDA在后面的几个步骤基本上是相同的,可以获得1~n维有排序关系的特征,一般情况下,排序越前的特征所包含的信息量越高。PCA旨在于去除原始数据中的冗余特征,是的投影在各个维度的方差尽可能大,而且是相互正交的。而LDA使得数据的类内距离小,类间距离大,较为关注的是样本的分类问题,其不保证投影到的新坐标系是正交的,也就是不同的数据之间可能还存在一定的相关性。与前者不同的是,ICA并不认为随机信号最有用的信息体现在类间或是最大方差里,而是构成样本集的独立成分,实际应用中ICA并不能起到降维的效果,也不单独使用,通常会和PCA或者白化处理结合使用。ICA的输出维数和输入相同,相互独立,没有排序关系,在某种意义上更具有区分度。其是一种数据预处理方式,在因果关系分析问题中应用广泛。

       综上,如何在不同的应用场景去应用上述方法,是一个经验性的问题,通常情况下,除了以工程的需求,工程中所提供的数据为出发点进行分析选择外,根据原理去做尝试,并多种方法结合使用也可以获得较好的数据预处理方法。

参考文献:
[1] Microstrong. 主成分分析(PCA)原理详解[N]. 知乎, 2018-06-08.
[2] JerryLead.主成分分析(Principal components analysis)-最大方差解释[N]. 博客园, 2011-04-18.
[3] 未济2019.史上最直白的ICA教程之一[N]. CSDN, 2015-12-11.
[4] warmyellow.线性判别分析(Linear Discriminant Analysis, LDA)算法分析[N]. CSDN, 2010-04-06.

<think>嗯,用户想了解Excel中的VLOOKUP函数的用法和参数含义。首先,我需要回忆一下VLOOKUP的基本结构。VLOOKUP是垂直查找函数,用于在表格的首列查找指定的值,然后返回该行中指定列的数据。它的四个参数分别是查找值、表格范围、列索引号和匹配模式。 接下来,我得确认每个参数的具体作用。第一个参数是lookup_value,也就是用户要查找的值,比如产品ID或者姓名。第二个参数是table_array,即查找的范围,这里要注意的是,查找值必须位于这个范围的第一列,否则函数无法正确工作。第三个参数是col_index_num,也就是用户想要返回的数据在表格范围中的第几列,这个列数是从表格范围的第一列开始算起的,不是整个工作表的列。第四个参数是range_lookup,决定是精确匹配还是近似匹配,通常用FALSE或0来指定精确匹配,避免错误。 然后,用户可能需要一个具体的例子来理解如何使用。比如,假设有一个产品价格表,用户想根据产品ID查找对应的价格。这时候,VLOOKUP就可以在ID列查找,然后返回价格列的数据。同时,要提醒用户注意表格范围最好使用绝对引用,比如$A$2:$C$100,这样在拖动公式时范围不会变化。 可能遇到的问题也需要考虑。比如,如果查找值不在表格的第一列,或者列索引号超过了表格的列数,函数会返回错误。此外,数据格式不一致也可能导致问题,比如查找值是数字,而表格中是文本格式的数字,这时候需要统一格式。还有,当出现#N/A错误时,可能是查找值不存在,或者匹配模式设置不正确,需要检查参数是否正确。 用户可能还会问到如何避免常见的错误,比如部分数据匹配出错的情况。这时候需要检查是否有多余的空格,或者数据格式不一致,或者表格范围没有锁定导致拖动时偏移。此外,XLOOKUP作为VLOOKUP的升级版,可能在某些情况下更方便,比如可以向左查找或者返回多列数据,这也是可以提及的内容。 最后,整理步骤,从基础语法到参数说明,再到具体案例,逐步引导用户理解如何使用VLOOKUP函数。同时,提供常见错误和解决方法,帮助用户在实际应用中避免问题。如果有必要,还可以比较VLOOKUP和其他查找函数的区别,比如HLOOKUP或XLOOKUP,但根据用户的问题,主要集中在VLOOKUP本身即可。</think>### Excel VLOOKUP函数详解 #### 一、基础语法与参数说明 VLOOKUP函数的语法为: $$=VLOOKUP(lookup\_value, table\_array, col\_index\_num, [range\_lookup])$$ 包含4个参数: 1. **lookup_value**(必填):要查找的值(如单元格引用或具体值) 2. **table_array**(必填):包含数据的表格范围(必须包含查找列和返回列) 3. **col_index_num**(必填):返回值所在列的序号(从table_array第一列开始计数) 4. **range_lookup**(可选):匹配类型 - `TRUE`/`1`:近似匹配(默认值,需数据升序排列) - `FALSE`/`0`:精确匹配(常用选项) [^1][^2] #### 二、使用步骤演示(工资表查询案例) 假设需要根据员工编号查询工资: 1. 建立查询单元格(如`B12`) 2. 输入公式: ```excel =VLOOKUP(A12, $A$2:$D$100, 4, 0) ``` - `A12`:待查询的员工编号 - `$A$2:$D$100`:锁定数据区域(绝对引用) - `4`:返回第4列(工资列) - `0`:精确匹配 [^2][^3] #### 三、常见错误与解决方法 | 错误现象 | 原因 | 解决方案 | |---------|------|---------| | #N/A | 查找值不存在 | 检查数据源或改用`IFERROR`容错 | | #REF! | 列序号超出范围 | 确认col_index_num ≤ 表格列数 | | 部分匹配失败 | 数据格式不一致 | 统一数值/文本格式 | | 结果错位 | 表格未锁定 | 使用`$`符号固定区域引用 | [^3][^4] #### 四、进阶技巧 1. **多条件查询**: 使用辅助列合并多个条件字段 ```excel =VLOOKUP(A2&B2, $D$2:$F$100, 3, 0) ``` 2. **通配符匹配**: `"*"`匹配任意字符,`"?"`匹配单个字符 ```excel =VLOOKUP("张*", $A$2:$C$100, 3, 0) ``` 3. **跨表查询**: 引用其他工作表数据 ```excel =VLOOKUP(A2, Sheet2!$A$2:$D$100, 4, 0) ``` [^1][^4]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值