这应该是最全的PCA原理总结了(上)

简介: 主成分分析(Principal components analysis,以下简称PCA)是最重要的降维方法之一。在数据压缩消除冗余和数据噪音消除等领域都有广泛的应用。一般我们提到降维最容易想到的算法就是PCA,下面我们就对PCA的原理做一个总结。

主成分分析(Principal components analysis,以下简称PCA)是最重要的降维方法之一。在数据压缩消除冗余和数据噪音消除等领域都有广泛的应用。一般我们提到降维最容易想到的算法就是PCA,下面我们就对PCA的原理做一个总结。

1、PCA的思想

PCA顾名思义,就是找出数据里最主要的方面,用数据里最主要的方面来代替原始数据。具体的,假如我们的数据集是n维的,共有m个数据(x(1),x(2),...,x(m))。我们希望将这m个数据的维度从n维降到n'维,希望这m个n'维的数据集尽可能的代表原始数据集。我们知道数据从n维降到n'维肯定会有损失,但是我们希望损失尽可能的小。那么如何让这n'维的数据尽可能表示原来的数据呢?

我们先看看最简单的情况,也就是n=2, n'=1,也就是将数据从二维降维到一维。数据如下图。我们希望找到某一个维度方向,它可以代表这两个维度的数据。图中列了两个向量方向,u1和u2,那么哪个向量可以更好的代表原始数据集呢?从直观上也可以看出,u1比u2好。

image.png

为什么u1比u2好呢?可以有两种解释,第一种解释是样本点到这个直线的距离足够近,第二种解释是样本点在这个直线上的投影能尽可能的分开。

假如我们把n'从1维推广到任意维,则我们的希望降维的标准为:样本点到这个超平面的距离足够近,或者说样本点在这个超平面上的投影能尽可能的分开。

基于上面的两种标准,我们可以得到PCA的两种等价推导。

2、PCA的推导:基于最小投影距离

我们首先看第一种解释的推导,即样本点到这个超平面的距离足够近。

image.png

现在我们考虑整个样本集,我们希望所有的样本到这个超平面的距离足够近,即最小化下式:

将这个式子进行整理,可以得到:
image.png

image.png

image.png

这样可以更清楚的看出,W为XXT的n'个特征向量组成的矩阵,而λ为XXT的若干特征值组成的矩阵,特征值在主对角线上,其余位置为0。当我们将数据集从n维降到n'维时,需要找到最大的n'个特征值对应的特征向量。这n'个特征向量组成的矩阵W即为我们需要的矩阵。对于原始数据集,我们只需要用

image.png

就可以把原始数据集降维到最小投影距离的n'维数据集。

如果你熟悉谱聚类的优化过程,就会发现和PCA的非常类似,只不过谱聚类是求前k个最小的特征值对应的特征向量,而PCA是求前k个最大的特征值对应的特征向量。

3、PCA的推导:基于最大投影方差

现在我们再来看看基于最大投影方差的推导。

image.png

观察第二节的基于最小投影距离的优化目标,可以发现完全一样,只是一个是加负号的最小化,一个是最大化。

利用拉格朗日函数可以得到

image.png

image.png

image.png

和上面一样可以看出,W为XXT的n'个特征向量组成的矩阵,而−λ为XXT的若干特征值组成的矩阵,特征值在主对角线上,其余位置为0。当我们将数据集从n维降到n'维时,需要找到最大的n'个特征值对应的特征向量。这n'个特征向量组成的矩阵W即为我们需要的矩阵。对于原始数据集,我们只需要用

image.png

就可以把原始数据集降维到最小投影距离的n'维数据集。

目录
相关文章
|
6月前
|
数据采集 机器学习/深度学习 搜索推荐
大模型开发: 描述主成分分析(PCA)以及它在降维中的应用。
PCA是广泛应用的降维技术,通过线性变换找到最大化方差的主成分,降低数据维度,简化计算并揭示数据结构。步骤包括数据预处理、计算协方差矩阵、特征值分解、选择主成分和数据转换。适用于图像识别、推荐系统等领域,但无监督性质可能导致类别信息丢失,且假设数据服从高斯分布。
107 1
|
3月前
|
机器学习/深度学习 算法 数据中心
【机器学习】面试问答:PCA算法介绍?PCA算法过程?PCA为什么要中心化处理?PCA为什么要做正交变化?PCA与线性判别分析LDA降维的区别?
本文介绍了主成分分析(PCA)算法,包括PCA的基本概念、算法过程、中心化处理的必要性、正交变换的目的,以及PCA与线性判别分析(LDA)在降维上的区别。
93 4
|
6月前
|
算法 数据可视化 Python
使用Python实现主成分分析(PCA)
使用Python实现主成分分析(PCA)
218 4
|
数据采集 机器学习/深度学习 数据可视化
R实战| PCA、tSNE、UMAP三种降维方法在R中的实现
R实战| PCA、tSNE、UMAP三种降维方法在R中的实现
312 0
|
机器学习/深度学习 数据采集 算法
PCA算法介绍及源码实现
PCA算法介绍及源码实现
310 0
|
机器学习/深度学习 算法 Python
机器学习算法之---PCA(主成分分析)
PCA(Principal Component Analysis)是一种常用的数据降维方法,可以将高维的数据降维到低维,以提取关键信息和减少噪音。它通过找到数据集中最重要的方向,并将数据在这个方向上投影,从而实现降维。
208 0
机器学习算法之---PCA(主成分分析)
|
机器学习/深度学习 人工智能 资源调度
【机器学习】主成分分析(PCA)——利用奇异值分解(SVD)(理论+图解+公式推导)
【机器学习】主成分分析(PCA)——利用奇异值分解(SVD)(理论+图解+公式推导)
383 0
【机器学习】主成分分析(PCA)——利用奇异值分解(SVD)(理论+图解+公式推导)
|
机器学习/深度学习 算法 搜索推荐
|
机器学习/深度学习 算法 数据可视化
PCA(主成分分析法)原理以及应用+代码实现
PCA(主成分分析法)原理以及应用+代码实现
676 0
PCA(主成分分析法)原理以及应用+代码实现
主成分分析(PCA)及动态主成分分析(Dynamic PCA)模型原理分析
主成分分析(PCA)及动态主成分分析(Dynamic PCA)模型原理分析
主成分分析(PCA)及动态主成分分析(Dynamic PCA)模型原理分析