当前位置首页 > 校外拓展 > 课外拾零

(干货)主成分分析(PCA)原理详解

更新时间:2023-08-05 文章作者:佚名 信息来源:网络整理 阅读次数:

本文是在主成分分析(PCA)原理的解读基础上添加一些自己的理解。Qv5物理好资源网(原物理ok网)

一、相关背景Qv5物理好资源网(原物理ok网)

在很多领域的研究和应用中,一般需要观察丰富的多变量数据,收集大量的数据并进行分析,寻找规律。 多元大数据集无疑将为研究和应用提供丰富的信息,也在一定程度上减少数据采集的工作量。 更重要的是,很多情况下,很多变量之间可能存在相关性,从而降低了问题分析的复杂度。 如果对每个指标单独进行分析,分析往往是孤立的,不能完全依赖数据中的信息。 因此,盲目降低指标会丢失很多有用的信息,进而形成错误的推论。Qv5物理好资源网(原物理ok网)

因此,需要找到一种合理的方法,在减少需要分析的指标的同时,尽量减少原始指标所包含信息的损失,从而达到对收集到的数据进行综合分析的目的。 由于变量之间存在一定的相关性,因此可以考虑将密切相关的变量分成尽可能少的新变量,使这些新变量成对不相关,这样就可以用更少的综合指标来区分代表每个变量中存在的各种信息。 主成分分析和因子分析就属于这种聚类算法。Qv5物理好资源网(原物理ok网)

2. 数据聚类Qv5物理好资源网(原物理ok网)

聚类是一种预处理高维特征数据的方法。 聚类就是保留高维数据中一些最重要的特征并消除噪声和不重要的特征,从而节省大量的时间和成本。 在实际生产和应用中,在一定的信息丢失范围内,聚类可以为我们节省大量的时间和成本。 聚类也成为一种非常广泛使用的数据预处理技术。Qv5物理好资源网(原物理ok网)

集群有一些优点:Qv5物理好资源网(原物理ok网)

1)使数据集更易于使用。Qv5物理好资源网(原物理ok网)

2)增加算法的预估成本。Qv5物理好资源网(原物理ok网)

3)消除噪音。Qv5物理好资源网(原物理ok网)

4)使结果易于理解。Qv5物理好资源网(原物理ok网)

聚类算法有很多种,如奇异值分解(SVD)、主成分分析(PCA)、因子分析(FA)、独立成分分析(ICA)等。Qv5物理好资源网(原物理ok网)

3. PCA原理解读 3.1 PCA的概念Qv5物理好资源网(原物理ok网)

PCA(),即主成分分析,是最广泛使用的数据聚类算法之一。 PCA的主要思想是将n维特征映射到k维。 这个k维就是一个新的正交特征,也称为主成分,是在原来的n维特征的基础上重构的k维特征。 PCA的工作是从原始空间中依次找到一组相互正交的坐标轴,新坐标轴的选择与数据本身密切相关。 其中,第一个新坐标轴选择为原始数据中残差最大的方向,第二个新坐标轴选择为在与第一个坐标轴正交的平面内推动残差最大的方向,第三个新坐标轴选择为在与第一个坐标轴正交的平面内推动残差最大的方向。 axis 它是与第 1 轴和第 2 轴正交的平面中的最大残差。 以此类推力的正交分解是什么量,可得到n个这样的坐标轴。 通过这些方法得到的新坐标轴,我们发现大部分残差都包含在上面的k个坐标轴​​中,而之前的坐标轴中包含的残差几乎为0。因此,我们可以忽略剩余的坐标轴,并且只保留富含大部分残差的上k个坐标轴​​。 实际上,这相当于只保留包含残差最多的维度的特征,而忽略包含残差几乎为0的特征维度,从而实现数据特征的聚类处理。Qv5物理好资源网(原物理ok网)

思考:如何得到这个包含最大差异的主成分方向?Qv5物理好资源网(原物理ok网)

答:其实就是通过估计数据矩阵的共残差矩阵,得到共残差矩阵的特征值特征向量,特征最大的k个特征对应的特征向量组成的矩阵选择值(即最大残差)。 这样就可以将数据矩阵变换到新的空间,实现数据特征的聚类。 (为什么特征值最大的方向就是残差最大的方向。n维特征空间中的样本分布在不规则区域,用k维正交单位向量来表示。特征值*特征向量是k维空间中能够表示的面积,所以特征值越大,表示的面积越大,对应的样本在这个方向上越分散,残差也越大。参考:)Qv5物理好资源网(原物理ok网)

由于获取共残差矩阵的特征值特征向量有两种方式:特征值分解共残差矩阵、奇异值分解共残差矩阵,因此PCA算法的实现方式有两种:基于特征值分解共残差矩阵实现PCA算法,PCA算法基于SVD分解共残差矩阵。Qv5物理好资源网(原物理ok网)

既然提到了协残差矩阵,我们就简单介绍一下残差和协残差的关系。 然后简单介绍了特征值分解矩阵的原理和奇异值分解矩阵的原理。 大致介绍是因为我在之前的文章《矩阵分解:特征值分解(EVD)、奇异值分解(SVD)中已经介绍过特征值分解原理和奇异值分解原理,所以这里不再重复。Qv5物理好资源网(原物理ok网)

3.2 核残差和散点矩阵Qv5物理好资源网(原物理ok网)

样本平均值:Qv5物理好资源网(原物理ok网)

样本残差:Qv5物理好资源网(原物理ok网)

样本 X:[10,15,23,11,42,9,11,8,11,21] 样本 Y:[15,46,21,9,45,48,21,5,12,20] Co -(注意这里的样本实际上是指数据集的特征):Qv5物理好资源网(原物理ok网)

从前面的公式,我们可以得到以下推论:Qv5物理好资源网(原物理ok网)

(1)残差的估计公式是基于一维特征,即对相同特征的不同样本的值进行估计; 而共残差必须至少满足二维特征; 残差是共同残差的特殊情况。Qv5物理好资源网(原物理ok网)

(2)残差和共残差的除数为n-1,即得到残差和共残差的无偏可能性。Qv5物理好资源网(原物理ok网)

当共残差为正时,表示X和Y呈正相关; 当共同残差为负时,表示X和Y负相关; 当co-为0时,表示X和Y相互独立。 Cov(X,X)是X的残差。当样本是n维数据时,它们的共残差实际上是一个共残差矩阵(对称方阵)。 例如,对于3维数据(x,y,z)(每个样本有三列特征x,y,z,共n个样本),估计的共同残差为:Qv5物理好资源网(原物理ok网)

散布矩阵定义为:Qv5物理好资源网(原物理ok网)

数据 X 的散布矩阵为 。 虽然共残差矩阵和散布矩阵密切相关,但散布矩阵是共残差矩阵除以(总数据量-1)。 因此它们的特征值和特征向量是相同的。 这里值得注意的是,散布矩阵是SVD奇异值分解中的一个步骤,因此PCA和SVD密切相关。Qv5物理好资源网(原物理ok网)

3.3 特征值分解矩阵原理Qv5物理好资源网(原物理ok网)

(1) 特征值和特征向量Qv5物理好资源网(原物理ok网)

如果向量v是矩阵A的特征向量,则它必须用以下方式表示:Qv5物理好资源网(原物理ok网)

其中,λ是特征向量v对应的特征值,矩阵的一组特征向量就是一组正交向量。Qv5物理好资源网(原物理ok网)

(2)特征值分解矩阵Qv5物理好资源网(原物理ok网)

对于矩阵A,有一组特征向量v,对这组向量进行正交化和单位化,得到一组正的电汇向量。 特征值分解就是将矩阵A分解为如下公式:Qv5物理好资源网(原物理ok网)

其中,Q为矩阵A的特征向量组成的矩阵,为对角矩阵,对角线上的元素为特征值。Qv5物理好资源网(原物理ok网)

这部分的详细内容可以看我的文章《机器学习中的SVD总结》,地址:机器学习中的SVD总结Qv5物理好资源网(原物理ok网)

3.4 SVD分解矩阵原理Qv5物理好资源网(原物理ok网)

奇异值分解是一种可以应用于任何矩阵的分解方法。 对于任何矩阵 A,总是存在奇异值分解:Qv5物理好资源网(原物理ok网)

假设A是一个m*n矩阵,则得到的U是一个m*m方阵,U上面的正交向量称为左奇异向量。 Σ 是一个 m*n 矩阵。 不仅Σ对角线上的其他元素都为0,而且对角线上的元素称为奇异值。 是v的转置矩阵,是一个n*n矩阵,其上的正交向量称为右奇异值向量。 而且一般来说,我们会将Σ上的值按降序排列。Qv5物理好资源网(原物理ok网)

SVD分解矩阵A的步骤:Qv5物理好资源网(原物理ok网)

(1)求Qv5物理好资源网(原物理ok网)

Qv5物理好资源网(原物理ok网)

的特征值和特征向量,使用单位化特征向量形成U。Qv5物理好资源网(原物理ok网)

(2)寻求Qv5物理好资源网(原物理ok网)

Qv5物理好资源网(原物理ok网)

的特征值和特征向量,使用单位化特征向量形成V。Qv5物理好资源网(原物理ok网)

(3) 遗嘱Qv5物理好资源网(原物理ok网)

力的正交分解是什么量_力的正交分解的原则_力正交分解的情况有哪些Qv5物理好资源网(原物理ok网)

Qv5物理好资源网(原物理ok网)

或者Qv5物理好资源网(原物理ok网)

Qv5物理好资源网(原物理ok网)

然后将特征值的平方根形成Σ。Qv5物理好资源网(原物理ok网)

3.5 PCA算法的两种实现Qv5物理好资源网(原物理ok网)

(1)实现基于特征值分解共残差矩阵的PCA算法Qv5物理好资源网(原物理ok网)

输入:数据集Qv5物理好资源网(原物理ok网)

,需要降维到k维。Qv5物理好资源网(原物理ok网)

1)去平均(即去中心化),即将每个特征除以各自的平均值。Qv5物理好资源网(原物理ok网)

2)估计共残差矩阵Qv5物理好资源网(原物理ok网)

Qv5物理好资源网(原物理ok网)

,注:这里,样本数n或n-1划分与否,虽然对得到的特征向量没有影响。Qv5物理好资源网(原物理ok网)

3)通过特征值分解的方式求出共残差矩阵的特征值和特征向量。Qv5物理好资源网(原物理ok网)

4)将特征值从大到小排序力的正交分解是什么量,选择其中最大的k。 然后,将对应的k个特征向量作为行向量,构成特征向量矩阵P。Qv5物理好资源网(原物理ok网)

5) 将数据变换到由k个特征向量建立的新空间中,即Y=PX。Qv5物理好资源网(原物理ok网)

总结:Qv5物理好资源网(原物理ok网)

1)关于为什么使用这部分Qv5物理好资源网(原物理ok网)

Qv5物理好资源网(原物理ok网)

,其中富含非常复杂的线性代数理论推论。 如果你想了解详情,可以阅读下面的文章。Qv5物理好资源网(原物理ok网)

-PCA的物理原理Qv5物理好资源网(原物理ok网)

2)关于矩阵为什么要用特征值来分解,是因为Qv5物理好资源网(原物理ok网)

Qv5物理好资源网(原物理ok网)

它是一个方阵,可以很容易求出特征值和特征向量。 事实上,也可以使用奇异值分解,这是求特征值和特征向量的另一种方法。Qv5物理好资源网(原物理ok网)

作为一个反例:Qv5物理好资源网(原物理ok网)

以X为例,我们使用PCA将这两行数据缩减为一行。Qv5物理好资源网(原物理ok网)

1)由于X矩阵的每一行已经是零均值,所以不需要去均值。Qv5物理好资源网(原物理ok网)

2)求共残差矩阵:Qv5物理好资源网(原物理ok网)

3)求出共残差矩阵的特征值和特征向量。Qv5物理好资源网(原物理ok网)

求解后的特征值为:Qv5物理好资源网(原物理ok网)

对应的特征向量为:Qv5物理好资源网(原物理ok网)

相应的特征向量是通解,可以取任意实数。 经过这样的归一化后的特征向量为:Qv5物理好资源网(原物理ok网)

4)矩阵P为:Qv5物理好资源网(原物理ok网)

5) 最后,我们将 P 的第一行除以数据矩阵 X 以获得聚类表示:Qv5物理好资源网(原物理ok网)

结果如图1所示:Qv5物理好资源网(原物理ok网)

图 1:Data X 聚类投影结果Qv5物理好资源网(原物理ok网)

注意:如果我们用特征值分解共残差矩阵,那么我们只能得到一个方向的PCA聚类。 该方向是从行(或列)方向对数据矩阵X进行压缩和聚类。Qv5物理好资源网(原物理ok网)

(2)基于SVD分解共残差矩阵实现PCA算法Qv5物理好资源网(原物理ok网)

输入:数据集Qv5物理好资源网(原物理ok网)

,需要降维到k维。Qv5物理好资源网(原物理ok网)

1)去平均值,即将每一位特征除以各自的平均值。Qv5物理好资源网(原物理ok网)

2) 估计共残差矩阵。Qv5物理好资源网(原物理ok网)

3)通过SVD估计共残差矩阵的特征值和特征向量。Qv5物理好资源网(原物理ok网)

4)将特征值从大到小排序,选择其中最大的k。 然后,将对应的k个特征向量作为列向量,构成特征向量矩阵。Qv5物理好资源网(原物理ok网)

5)将数据变换到由k个特征向量创建的新空间中。Qv5物理好资源网(原物理ok网)

在PCA聚类中,我们需要找到样本共残差矩阵Qv5物理好资源网(原物理ok网)

力的正交分解的原则_力的正交分解是什么量_力正交分解的情况有哪些Qv5物理好资源网(原物理ok网)

Qv5物理好资源网(原物理ok网)

最大的k个特征向量,然后利用最大的k个特征向量组成的矩阵做低维投影聚类。可见,在这个过程中,需要找到共残差矩阵Qv5物理好资源网(原物理ok网)

Qv5物理好资源网(原物理ok网)

,当样本数量很多,样本特征数量很多的时候,这个估计还是很大的。 当我们使用SVD分解共残差矩阵时,SVD有两个好处:Qv5物理好资源网(原物理ok网)

(1) 有一些SVD实现算法不需要求共残差矩阵Qv5物理好资源网(原物理ok网)

Qv5物理好资源网(原物理ok网)

还可以找到我们正确的奇异矩阵V。换句话说,我们的PCA算法可以通过SVD而不是特征分解来完成,这在样本量很大时非常有效。 事实上,-learn 的 PCA 算法背后的真正实现是使用 SVD 而不是特征值分解。Qv5物理好资源网(原物理ok网)

(2) 请注意,PCA 仅使用我们的 SVD 的左奇异矩阵,而不使用右奇异值矩阵。 右奇异值矩阵有什么用?Qv5物理好资源网(原物理ok网)

假设我们的样本是一个m*n的矩阵X,如果我们通过SVD求出该矩阵Qv5物理好资源网(原物理ok网)

由最大的k个特征向量组成的k*n矩阵Qv5物理好资源网(原物理ok网)

,那么我们可以执行以下操作:Qv5物理好资源网(原物理ok网)

可以得到m*k的矩阵X'。 与我们原来的m*n矩阵X相比,列数从n减少到k。 可以看出列数被压缩了。 也就是说,左奇异矩阵可以用来压缩行数; 右奇异矩阵可用于压缩列(即特征维数)。 这就是为什么我们使用SVD分解共残差矩阵来实现PCA以获得两个方向(即行和列方向)的PCA聚类。Qv5物理好资源网(原物理ok网)

4.主成分分析示例Qv5物理好资源网(原物理ok网)

(1)PCA的实现:Qv5物理好资源网(原物理ok网)

##Python实现PCA
import numpy as np
def pca(X,k):#k is the components you want
  #mean of each feature
  n_samples, n_features = X.shape
  mean=np.array([np.mean(X[:,i]) for i in range(n_features)])
  #normalization
  norm_X=X-mean
  #scatter matrix
  scatter_matrix=np.dot(np.transpose(norm_X),norm_X)
  #Calculate the eigenvectors and eigenvalues
  eig_val, eig_vec = np.linalg.eig(scatter_matrix)
  eig_pairs = [(np.abs(eig_val[i]), eig_vec[:,i]) for i in range(n_features)]
  # sort eig_vec based on eig_val from highest to lowest
  eig_pairs.sort(reverse=True)
  # select the top k eig_vec
  feature=np.array([ele[1] for ele in eig_pairs[:k]])
  #get new data
  data=np.dot(norm_X,np.transpose(feature))
  return data
 
X = np.array([[-1, 1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
 
print(pca(X,1))
Qv5物理好资源网(原物理ok网)

里面的代码实现了对数据X的特征进行聚类,结果如下:Qv5物理好资源网(原物理ok网)

(2)将PCA与我们的PCA进行比较:Qv5物理好资源网(原物理ok网)

##用sklearn的PCA
from sklearn.decomposition import PCA
import numpy as np
X = np.array([[-1, 1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
pca=PCA(n_components=1)pca.fit(X)
print(pca.transform(X))
Qv5物理好资源网(原物理ok网)

结果如下:Qv5物理好资源网(原物理ok网)

工作了半天,结果却不一样! 我们来剖析一下吧!Qv5物理好资源网(原物理ok网)

中的PCA由函数实现,对奇异值分解结果进行处理。 由于ui*σi*vi=(-ui)*σi*(-vi),即u和v同时求逆得到的结果是相同的,而这会导致PCA聚类得到的结果不同(虽然两者都是正确的)。 具体可以参考参考文章9或者自己分析PCA的源码。Qv5物理好资源网(原物理ok网)

5. PCA的理论推导Qv5物理好资源网(原物理ok网)

PCA有两种容易理解的解释:(1)最大方差理论; (2)最小化聚类带来的损失。 两种方法都会产生相同的结果。Qv5物理好资源网(原物理ok网)

这里我只介绍最大方差理论:Qv5物理好资源网(原物理ok网)

在信号处理中,认为信号有较大的残差,而噪声有较小的残差。 帧率是信号与噪声的残差比,越大越好。 样本在u1上的投影残差较大,而在u2上的投影残差较小,因此可以认为在u2上的投影是由噪声引起的。Qv5物理好资源网(原物理ok网)

为此,我们觉得最好的k维特征是n维样本点转为k维后,每个维度的样本残差都很大。Qv5物理好资源网(原物理ok网)

例如,我们将右图中的5个点投影到某个维度上,用一条经过原点的直线来表示(数据已经居中):Qv5物理好资源网(原物理ok网)

假设我们选择两条不同的直线进行投影,那么左右哪一条更好呢? 根据我们之前的残差最大化理论,右边那个是好的,因为投影的样本点之间的残差是最大的(也可以说投影的绝对值之和是最大的)。Qv5物理好资源网(原物理ok网)

估计投影的方法如右图所示:Qv5物理好资源网(原物理ok网)

图中,黑点代表样本,白点代表在u上的投影,其中u是直线的斜率和直线的方向向量,是单位向量。 黑点是在u上的投影点,到原点的距离是(即或那么)。Qv5物理好资源网(原物理ok网)

6、选择聚类后的维度K(主成分个数)Qv5物理好资源网(原物理ok网)

主成分个数K如何选择? 首先定义两个概念:Qv5物理好资源网(原物理ok网)

选择不同的K值,然后利用下面的多项式不断估计,选出能够满足下面多项式条件的最小K值。Qv5物理好资源网(原物理ok网)

t值可以自己确定,例如t值为0.01,说明PCA算法保留了99%的主要信息。 当你认为偏差需要更小时,可以将t值设置得小一些。 上式也可以用SVD分解时形成的S矩阵来表示,例如下面的多项式:Qv5物理好资源网(原物理ok网)

:Qv5物理好资源网(原物理ok网)

(一)主成分分析(PCA)原理解读Qv5物理好资源网(原物理ok网)

(2)机器学习之PCA主成分分析-steed灬-博客园Qv5物理好资源网(原物理ok网)

(3)简单易学的机器学习算法——主成分分析(PCA)Qv5物理好资源网(原物理ok网)

(4)PCA在机器学习实战中的应用Qv5物理好资源网(原物理ok网)

(5)机器学习中的物理学(5)-强大的矩阵奇异值分解(SVD)及其应用--博客园Qv5物理好资源网(原物理ok网)

(6) PCA与SVD关系的补充Qv5物理好资源网(原物理ok网)

(7)-PCA的物理原理Qv5物理好资源网(原物理ok网)

(8)PCA(主成分分析)实现Qv5物理好资源网(原物理ok网)

(九)主成分分析PCA()在部分源码中的应用与分析Qv5物理好资源网(原物理ok网)

发表评论

统计代码放这里