【数据挖掘】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 优缺点

优点:

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

缺点:

  • 主成分各个特征维度的含义具有一定的模糊性,不如原始样本特征的解释性强。
  • 方差小的非主成分也可能含有对样本差异的重要信息,因降维丢弃可能对后续数据处理有影响。
  • 离群点对降维效果影响很大
目录
相关文章
|
4月前
|
存储 边缘计算 算法
【太阳能学报EI复现】基于粒子群优化算法的风-水电联合优化运行分析(Matlab代码实现)
【太阳能学报EI复现】基于粒子群优化算法的风-水电联合优化运行分析(Matlab代码实现)
101 0
|
4月前
|
运维 监控 JavaScript
基于 Node.js 图结构的局域网设备拓扑分析算法在局域网内监控软件中的应用研究
本文探讨图结构在局域网监控系统中的应用,通过Node.js实现设备拓扑建模、路径分析与故障定位,提升网络可视化、可追溯性与运维效率,结合模拟实验验证其高效性与准确性。
300 3
机器学习/深度学习 算法 自动驾驶
933 0
|
4月前
|
机器学习/深度学习 算法 搜索推荐
从零开始构建图注意力网络:GAT算法原理与数值实现详解
本文详细解析了图注意力网络(GAT)的算法原理和实现过程。GAT通过引入注意力机制解决了图卷积网络(GCN)中所有邻居节点贡献相等的局限性,让模型能够自动学习不同邻居的重要性权重。
892 0
从零开始构建图注意力网络:GAT算法原理与数值实现详解
|
5月前
|
传感器 算法 定位技术
KF,EKF,IEKF 算法的基本原理并构建推导出四轮前驱自主移动机器人的运动学模型和观测模型(Matlab代码实现)
KF,EKF,IEKF 算法的基本原理并构建推导出四轮前驱自主移动机器人的运动学模型和观测模型(Matlab代码实现)
186 2
|
5月前
|
机器学习/深度学习 算法 5G
【MUSIC、最大似然与克拉美-罗下界】MUSIC与ESPRIT 算法来估计到达角(AoA),并尝试推导克拉美-罗下界(CRLB)以分析其性能研究(Matlab代码实现)
【MUSIC、最大似然与克拉美-罗下界】MUSIC与ESPRIT 算法来估计到达角(AoA),并尝试推导克拉美-罗下界(CRLB)以分析其性能研究(Matlab代码实现)
264 0
|
5月前
|
算法
离散粒子群算法(DPSO)的原理与MATLAB实现
离散粒子群算法(DPSO)的原理与MATLAB实现
273 0
|
6月前
|
机器学习/深度学习 人工智能 编解码
AI视觉新突破:多角度理解3D世界的算法原理全解析
多视角条件扩散算法通过多张图片输入生成高质量3D模型,克服了单图建模背面细节缺失的问题。该技术模拟人类多角度观察方式,结合跨视图注意力机制与一致性损失优化,大幅提升几何精度与纹理保真度,成为AI 3D生成的重要突破。
693 0
|
6月前
|
编解码 算法 5G
MIMO雷达空间谱估计中Capon算法与MUSIC算法的对比分析及实现
MIMO雷达空间谱估计中Capon算法与MUSIC算法的对比分析及实现
555 2