【数据挖掘】PCA 主成分分析算法过程及原理讲解

简介: 主成分分析(PCA)的原理和算法过程。

PCA 主成分分析算法过程及原理讲解

1 概念

主成分分析(Principal componet analysis,PCA) 是一种无监督学习方法,利用正交变换把线性相关变量表示的观测数据转换为几个由线性无关变量表示的数据,线性无关的变量成为主成分。主成分的个数通常小于原始变量的个数,属于降维方法。根据分解协方差矩阵的策略,分为两种PCA方法,第一种是基于特征值分解协方差矩阵实现PCA算法,第二种是基于奇异值分解法(SVD)分解协方差矩阵实现PCA算法。

2 算法过程

2.1 基于特征值分解协方差矩阵实现PCA算法

输入:数据集 X = {x1,x2, . . . , xn} 需要降到k维。

(1)去平均值(即去中心化),即每一位特征减去各自的平均值。

(2)计算协方差矩阵1/n XXT,注:这里除或不除样本数量n或n-1,其实对求出的特征向量没有影响。

(3)用特征值分解方法求协方差矩阵 1/n XXT的特征值与特征向量。

(4)对特征值从大到小排序,选择其中最大的k个。然后将其对应的k个特征向量分别作为行向量组成特征向量矩阵P。

(5)将数据转换到k个特征向量构建的新空间中,即Y=PX。

2.2 基于奇异值分解法(SVD)分解协方差矩阵实现PCA算法

输入:数据集 X = {x1,x2, . . . , xn} ,需要降到k维。

(1)去平均值(去中心化),即每一位特征减去各自的平均值。

(2) 计算协方差矩阵。

(3)通过奇异值分解法(SVD)计算协方差矩阵的特征值与特征向量。

(4)对特征值从大到小排序,选择其中最大的k个。然后将其对应的k个特征向量分别作为列向量组成特征向量矩阵。

(5)将数据转换到k个特征向量构建的新空间中。

3 问答

3.1 SVD分解矩阵原理

奇异值分解是一个能适用于任意矩阵的一种分解的方法,对于任意矩阵A总是存在一个奇异值分解:

U=UΣVT

假设A是一个m×n的矩阵,那么得到的U是一个m×m的方阵,U里面的正交向量被称为左奇异向量。Σ是一个m×n的矩阵,Σ除了对角线其它元素都为0,对角线上的元素称为奇异值。 VT 是V的转置矩阵,是一个n×的矩阵,它里面的正交向量被称为右奇异值向量。而且一般来讲,我们会将Σ上的值按从大到小的顺序排列。

SVD分解矩阵A的步骤:

(1) 求AAT的特征值和特征向量,用单位化的特征向量构成 U。

(2) 求ATA的特征值和特征向量,用单位化的特征向量构成 V。

(3) 将AAT或者ATA的特征值求平方根,然后构成 Σ。

3.2 特征值分解矩阵原理

(1) 特征值与特征向量

如果一个向量v是矩阵A的特征向量,将一定可以表示成下面的形式:

Av=λv

其中,λ是特征向量v对应的特征值,一个矩阵的一组特征向量是一组正交向量。

(2) 特征值分解矩阵

对于矩阵A,有一组特征向量v,将这组向量进行正交单位化,就能得到一组正交单位向量。特征值分解,就是将矩阵A分解为如下式:

A=QΣQ−1

其中,Q是矩阵A的特征向量组成的矩阵,[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tY579VzA-1658189878184)(https://www.zhihu.com/equation?tex=%5CSigma)\]则是一个对角阵,对角线上的元素就是特征值。

3.3 PCA为什么要中心化

把坐标原点放在数据的中心,找方差最大的坐标方向,如果不放在中心,坐标原点就是数据的旁边,不能很好的映射到坐标上。

具体讲解看视频解析:B站讲解PCA

图1 去中心化前,坐标原点在数据的旁边。

图2 去中心化后,坐标原点在数据的中心。

3.4 协方差矩阵的特征向量的数学意义是什么?

PCA的目标是找到一个坐标轴,能够保证所有的点都能映射到坐标轴上,且映射点之间尽量不重合,分散开,最大的保留每个点的信息。数据去中心化后,求协方差矩阵,协方差矩阵中的特征向量就是坐标轴的方向,即坐标轴旋转的角度,特征值就是坐标轴方向的方差。

3.5 在PCA的方差具体指什么?

指的是数据映射到新坐标轴上的数据分布方差,方差越大,映射即降维后的数据,保存的原始数据信息最大。

3.6 PCA 优缺点

优点:

  • 仅仅需要以方差衡量信息量,不受数据集以外的因素影响。
  • 各主成分之间正交,可消除原始数据成分间的相互影响的因素。
  • 计算方法简单,主要运算是特征值分解,易于实现。

缺点:

  • 主成分各个特征维度的含义具有一定的模糊性,不如原始样本特征的解释性强。
  • 方差小的非主成分也可能含有对样本差异的重要信息,因降维丢弃可能对后续数据处理有影响。
  • 离群点对降维效果影响很大
目录
相关文章
机器学习/深度学习 算法 自动驾驶
117 0
|
22天前
|
机器学习/深度学习 算法 搜索推荐
从零开始构建图注意力网络:GAT算法原理与数值实现详解
本文详细解析了图注意力网络(GAT)的算法原理和实现过程。GAT通过引入注意力机制解决了图卷积网络(GCN)中所有邻居节点贡献相等的局限性,让模型能够自动学习不同邻居的重要性权重。
99 0
从零开始构建图注意力网络:GAT算法原理与数值实现详解
|
30天前
|
机器学习/深度学习 算法 文件存储
神经架构搜索NAS详解:三种核心算法原理与Python实战代码
神经架构搜索(NAS)正被广泛应用于大模型及语言/视觉模型设计,如LangVision-LoRA-NAS、Jet-Nemotron等。本文回顾NAS核心技术,解析其自动化设计原理,探讨强化学习、进化算法与梯度方法的应用与差异,揭示NAS在大模型时代的潜力与挑战。
268 6
神经架构搜索NAS详解:三种核心算法原理与Python实战代码
|
1月前
|
传感器 算法 定位技术
KF,EKF,IEKF 算法的基本原理并构建推导出四轮前驱自主移动机器人的运动学模型和观测模型(Matlab代码实现)
KF,EKF,IEKF 算法的基本原理并构建推导出四轮前驱自主移动机器人的运动学模型和观测模型(Matlab代码实现)
|
1月前
|
算法
离散粒子群算法(DPSO)的原理与MATLAB实现
离散粒子群算法(DPSO)的原理与MATLAB实现
86 0
|
2月前
|
机器学习/深度学习 人工智能 编解码
AI视觉新突破:多角度理解3D世界的算法原理全解析
多视角条件扩散算法通过多张图片输入生成高质量3D模型,克服了单图建模背面细节缺失的问题。该技术模拟人类多角度观察方式,结合跨视图注意力机制与一致性损失优化,大幅提升几何精度与纹理保真度,成为AI 3D生成的重要突破。
179 0
|
2月前
|
算法 区块链 数据安全/隐私保护
加密算法:深度解析Ed25519原理
在 Solana 开发过程中,我一直对 Ed25519 加密算法 如何生成公钥、签名以及验证签名的机制感到困惑。为了弄清这一点,我查阅了大量相关资料,终于对其流程有了更清晰的理解。在此记录实现过程,方便日后查阅。
163 0
|
2月前
|
人工智能 自然语言处理 算法
2025 年 7 月境内深度合成服务算法备案情况分析报告
2025年7月,中央网信办发布第十二批深度合成算法备案信息,全国389款产品通过备案,服务提供者占比超七成。截至7月14日,全国累计备案达3834款,覆盖文本、图像、音视频等多模态场景,广泛应用于生活服务、医疗、金融等领域。广东以135款居首,数字人、AI客服等C端应用主导,民营企业成主力,国企聚焦公共服务。随着AI政策推动,备案已成为AI产品合规上线关键环节。
|
3月前
|
消息中间件 存储 缓存
zk基础—1.一致性原理和算法
本文详细介绍了分布式系统的特点、理论及一致性算法。首先分析了分布式系统的五大特点:分布性、对等性、并发性、缺乏全局时钟和故障随时发生。接着探讨了分布式系统理论,包括CAP理论(一致性、可用性、分区容错性)和BASE理论(基本可用、软状态、最终一致性)。文中还深入讲解了两阶段提交(2PC)与三阶段提交(3PC)协议,以及Paxos算法的推导过程和核心思想,强调了其在ZooKeeper中的应用。最后简述了ZAB算法,指出其通过改编的两阶段提交协议确保节点间数据一致性,并在Leader故障时快速恢复服务。这些内容为理解分布式系统的设计与实现提供了全面的基础。
|
3月前
|
机器学习/深度学习 边缘计算 算法
NOMA和OFDMA优化算法分析
NOMA和OFDMA优化算法分析
243 127

热门文章

最新文章