主成分分析之数学推导

本文通过专家访谈形式,详细解析了主成分分析的两大步骤:数据预处理与转换矩阵求解。利用奇异值分解方法,文章进一步阐述了如何选取合适的主成分数量,并探讨了其在数据降维中的应用。

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


记者:王老您好,上次您给我们清晰的介绍了什么是主成分,今年您是否有空给我们讲一讲如何用数学方法来分析主成分呢?

王老:可以的,但我现在手头有点事,半个小时之后再来找我

记者:好的,一会儿见

半个小时后

王老:我们开始吧,其实主成分分析一般分为两个大的步骤,第一步是讲把数组的平均值变成0并保证各个维度的数据在一个尺度上,第而步找到一个可以原来的特征空间映射到一个新的特征空间的矩阵和从新的特征空间中选择足够的维度来代表原数据。

记者:王老,我们为什么要寻找这样一个变换矩阵呢?

王老:我们在上次讨论的时候已经提过,主成分不一定是原数据的维度中的几个,可以是原数据几个维度的线性组合,而第一主成分就是所有可能的线性组合中方差最大的那个线性组合所构成的新的维度

记者:王老,那怎么来求这个变换矩阵呢?

王老:一般我们都用奇异值分解来求,我们首先看一下什么是奇异值分解,有人说奇异值分解是大学线性代数最应该重点讲的分解,但可惜的是很多老师都没有好好去讲它。任何一个矩阵A都可以分解成这样的一个的形式

A=UΣVT
其中U和V都是正交阵,Σ是对角阵,这个分解可以这样理解,如何A是一个mxn的矩阵,那么A也可以理解成一个线性变换,可以把一个n维的向量映射成一个m维的向量。n维的空间中一定存在一组基,这组基在经过A的线性变换之后仍然是正交的,只是长度可能发生变化,如果找到了这组基,那么A这个线性变化就可以分成三个连续过程Ax=A=UΣVTx:首先求出一个向量在这组基上坐标也就是一个投影变化
x=VTx
然后,每个坐标会经过一定的拉伸
x=Σx
最后再经过一个旋转变化U,这便是奇异值分解的物理解释。

记者:王老,我真的听不懂

王老:没事听不懂也没关系,把前面的都忘了,就记住主成分分解的形式
A=UΣVT
下面我们开始讲如何用奇异值分解做主成分分析。如果我们有一组m维数据(就是我们从n个角度去描述一个事物),然后一共有n条数据,这组数据可以写成一个矩阵Dmn,我们把D的转置做奇异值分解,也就是

DTmn=UΣVT
,也可以写成

DTmn=u1d1vT1+u2d2vT2+...

为了简化问题,我们假设数据是两维的

DT2n=u1d1vT1+u2d2vT2

如果d1远大于d2,那么u1d1vT1就可以近似的表示原数据了,而v1就是数据的第一主成分,可以证明,原数据这这一维度上的方差最大。我们这里就不去证明了,如果有多维的话那么vi就是第i主成分。

记者:那到底选多少个主成分合适呢?

王老:保证选择的主成分对应的d的值占多有d的和超过一定比例即可,一般是90%,也可以根据实际情况自己选择这个比例

记者:好的,王老,我回去再好好消化一下,感谢您的耐心讲解,再见
### 稀疏主成分分析(Sparse PCA)的数学原理及公式推导 稀疏主成分分析(Sparse PCA,简称 SPCA)是主成分分析(PCA)的一种扩展方法,旨在通过引入稀疏性约束来提高成分的可解释性。传统 PCA 的成分通常是所有原始变量的线性组合,这可能导致成分难以解释。SPCA 通过限制成分中非零系数的数量或大小,使得成分仅依赖于部分原始变量[^1]。 #### 一、稀疏主成分分析的基本思想 稀疏主成分分析的目标是在最大化方差的同时,引入稀疏性约束以减少成分中非零系数的数量。假设数据矩阵为 \( X \in \mathbb{R}^{n \times p} \),其中 \( n \) 是样本数,\( p \) 是特征数。SPCA 的目标可以表示为以下优化问题: \[ \max_{v \in \mathbb{R}^p} \quad v^\top \Sigma v \quad \text{subject to} \quad \|v\|_2 = 1, \; \|v\|_0 \leq k, \] 其中: - \( \Sigma \) 是数据的协方差矩阵; - \( v \) 是成分的方向向量; - \( \|v\|_2 \) 表示 \( v \) 的 \( L_2 \)-范数; - \( \|v\|_0 \) 表示 \( v \) 中非零元素的数量; - \( k \) 是用户指定的最大非零系数数量[^1]。 然而,直接求解上述优化问题是 NP 难问题,因此需要采用近似方法进行求解。 #### 二、稀疏主成分分析的公式推导 为了简化问题,通常将稀疏约束 \( \|v\|_0 \leq k \) 替换为更易于处理的 \( L_1 \)-范数约束 \( \|v\|_1 \leq c \) 或者在目标函数中加入稀疏正则化项。以下是两种常见的公式推导方式: ##### 1. 带 \( L_1 \)-正则化的优化问题 一种常见的方式是通过在目标函数中加入 \( L_1 \)-正则化项来实现稀疏性。优化问题可以重写为: \[ \max_{v \in \mathbb{R}^p} \quad v^\top \Sigma v - \lambda \|v\|_1 \quad \text{subject to} \quad \|v\|_2 = 1, \] 其中 \( \lambda > 0 \) 是正则化参数,用于控制稀疏程度。较大的 \( \lambda \) 值会导致更多的稀疏性[^4]。 ##### 2. 基于广义特征值问题的公式 另一种常用的方法是将稀疏主成分分析转化为一个广义特征值问题。具体来说,定义对称矩阵 \( A = \Sigma + \lambda D \),其中 \( D \) 是对角矩阵,其对角元素与 \( v \) 的稀疏性相关。优化问题可以转化为求解以下广义特征值问题: \[ \Sigma v = \lambda D v. \] 通过选择适当的 \( \lambda \) 和 \( D \),可以实现对成分的稀疏性控制[^3]。 #### 三、稀疏主成分分析的求解方法 由于稀疏主成分分析的优化问题是非凸的,通常需要使用数值方法进行求解。以下是几种常见的求解方法: 1. **迭代阈值法**:通过在每次迭代中对解施加稀疏性约束(如硬阈值或软阈值操作),逐步逼近最优解。 2. **凸松弛法**:将原问题松弛为一个凸优化问题,例如通过半定规划(SDP)求解。 3. **交替优化法**:将优化问题分解为两个子问题,分别优化成分方向和稀疏性约束[^1]。 #### 四、稀疏主成分分析的应用场景 稀疏主成分分析在需要高可解释性的场景中具有显著优势。例如,在基因表达数据分析中,SPCA 可以帮助识别与特定生物过程相关的少数关键基因;在金融数据分析中,SPCA 可以用于提取影响市场波动的关键因素[^4]。 ```python from sklearn.decomposition import SparsePCA import numpy as np # 示例代码:使用 SparsePCA 进行降维 X = np.random.randn(100, 10) # 生成随机数据 spca = SparsePCA(n_components=2, alpha=0.1, ridge_alpha=0.01) transformed_X = spca.fit_transform(X) print("Transformed Data Shape:", transformed_X.shape) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值