主成分分析法PCA(一):算法原理

article/2025/9/10 19:49:06

一:算法概述:

主成分分析法,principle component analysis,PCA。也称主分量分析,是一种大样本,多变量数据间内在关系的一种方法。这种方法利用降维的思想,通过向量变换的方法将众多线性相关指标转换成少数线性无关的综合指标,从而切断相关的干扰,指出主导成分,作出更准确的估量。

PCA在几何上表现为:将原坐标变换成新正交坐标系,使之指向样本点散步最开的p个正交方向。

在代数上表现为:将原随机向量的协方差矩阵变换成对角形阵。

二:基本原理:

PCA是一种降维的统计方法,它借助一个正交变换将其分量相关的原随机向量转化成分量不相关的新随机变量,然后对多维变量系统进行降维处理,使之能以较高精度转换成低维变量系统,再通过构造价值函数,将低维系统转化为一维系统。

记原始样本X有p个原始特征: X = (X1,X2,...,Xp)

PCA就是将这p个原始特征转变为p个特征的线性组合的问题,即原特征的线性组合Yi:

                                      Y_1 = a_1_1 X_1 + a_1_2 X_2 + ... + a_1_p X_p \\ ................\\ \ Y_p = a_p_1 X_1 + a_p_2 X_2 + ... + a_p_p X_p

因此记                      原始特征:X = (X1,X2,...,Xp)^{^T}

                                    主成分:Y = (Y1,Y2,...,Yp)^{^T}

                       相关系数矩阵:A=\begin{bmatrix} a_1_1 & a_1_2 & ... & a_1_p\\ a_2_1 & a_2_2 & ... & a_2_p\\ ... & ... & ... & ...\\ a_p_1 & a_p_2 & ... & a_p_p \end{bmatrix}=\begin{bmatrix} a_1\\ a_2\\ ...\\ a_p\\ \end{bmatrix}

                                             有Y=A·X

上式需满足:

1)主成分间不相关,即对于任意i,j,相关系数covv(Yi,Yj)=0

2)组合系数向量a_i = (a_i_1,a_i_2,...,a_i_p)为单位向量:a_i_1{^2} + a_i_2{^2} +...+ a_i_p{^2} = 1

3)各主成分方差依次递减,即var(Y1) ≥ var(Y2) ≥ ...  ≥ var(Yp)

4)总方差不变,即总信息量不变:\sum_{i=1}^{p}Var(Y_i) = \sum_{i=1}^{p}Var(X_i)

5)相关系数covv(Yi,Xj) = a(i,j)

6)ai是A的第i个特征向量(eigenvector),该特征向量的特征值\lambda _i为Yi的方差,即:

                                             Var(Y_i)=\lambda _i,then \lambda _1\geq \lambda _2\geq ...\geq \lambda _p

2.1 问题:A矩阵的求解?

方法:通过求解X的协方差矩阵S的特征方程,得到p个特征根和p个单位特征向量,将p个特征根按从小大到小排列分别代表p个主成分的方差,相应的单位特征向量即主成分系数。

|S-\lambda I|=0,求得特征根\lambda,然后将\lambda _i 代入(S-\lambda I)Z = 0,求得对应单位特征向量ai 以构成A矩阵

2.2 标准化处理

由于PCA根据变量离散度即方差大小确定主成分,此时不同指标的量纲不同会导致方差大小差别过大,从而影响主成分,因此需要对原变量作标准化处理:

记原样本X_j = (X_1_j,X_2_j,...,X_p_j){^T},共计有m个样本,因此其平均值

                                  \bar{X} =(\frac{\sum_{j=1}^{m}X_1_j}{m},...,\frac{\sum_{j=1}^{m}X_p_j}{m})=(\bar{X_1} ,...,\bar{X_p} )

因此对于某样本              X = (X1,X2,...,Xp)^{^T}

有标准化处理公式:X_i{^'} = (x_i - \bar{x_i}) / \sqrt{S_x_i_x_i} = (x_i - \bar{x_i}) / \sqrt{S_i_i}

因此标准化处理后得到X{'} = (X1{'},X2{'},...,Xp{'})^{^T},对于X{'} 有协方差矩阵S{'} = S

对于S{'} 求得特征根\lambda 和相应的特征向量组成A。

对于相关系数 covv(Y_k,X_i) = a_k_i\sqrt{\lambda_k/\sigma _i_i}

                      covv(Y_k,X_i{^'}) = a_k_i\sqrt{\lambda_k}

2.3 累计贡献率的k值选择

在实际问题中,利用PCA的目的是为了减少变量个数,因此在尽量少损失信息量的情况下选取前k个主成分作为主要成分

记主成分Yi的方差贡献率 \alpha _i = \lambda_i/ \sum_{j=1}^{p} \lambda_j,这个值越大,说明该主成分综合原指标特征信息越强

记前K个主成分的累计贡献率为\eta = \sum_{i=1}^{k} \alpha_i ,其中K ≤ p

当这个累计贡献率达到指定的某个值T(比如85%)以上时,即取对应的前k个主成分,这个k个主成分基本能反映原指标信息。


http://chatgpt.dhexx.cn/article/mUe34omy.shtml

相关文章

主成分分析的基本原理

目录 什么是主成分分析? 主成分分析的步骤 根据什么选择主成分? 怎样解释主成分? 特征值、方差解释率及碎石图 载荷系数与共同度 什么是主成分分析? 主成分的概念由Karl Pearson在1901年提出的。他是考察多个 变量间相关性…

PCA主成分分析原理理解学习(源于b站某视频)

Principal Component Analysis 主成分分析 地址:https://www.bilibili.com/video/BV1E5411E71z?spm_id_from333.337.search-card.all.click 假设要保存二维的信息,由于降维考虑,期望只存储一个维度的信息(为了减少存储的信息量&a…

主成分分析(PCA)原理及过程

首先,感谢一下这篇文章的作者:主成分分析原理及过程 PCA原理及过程 在机器学习中,对于数据维度过多问题,提出了一种降维算法叫做PCA算法。具体的降维:例如评估一个国家的GDP水平,需要考量到人口、收入、人…

PCA主成分分析原理的三种角度的理解

主成分分析算是降维算法中的一个经典算法了。网上也有很多博客介绍了这个算法。这篇文章从三个不同的角度,对PCA方法做了详细的分析,不同的角度进行推导最后得到的也都是同一个结果,推导过程需要些数学基础,但总体是非常好理解的。…

主成分分析(PCA)原理总结

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

PCA主成分分析原理及分析实践详细介绍

自己的博客在Github上&#xff0c;访问不多。这篇文章竟然被别人发了出来&#xff0c;还是贴到CSDN上&#xff0c;更方便检索吧。 原文&#xff1a;<http://blog.genesino.com/2016/10/PCA/> This is generated by R knitr, please check https://github.com/Tong-Chen/…

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

PCA概念 PCA(Principal Component Analysis)&#xff0c;即主成分分析方法&#xff0c;是一种使用最广泛的数据降维算法。PCA的主要思想是将n维特征映射到k维上&#xff0c;这k维是全新的正交特征也被称为主成分&#xff0c;是在原有n维特征的基础上重新构造出来的k维特征。PC…

python主成分分析代码_PCA主成分分析 原理讲解 python代码实现

1. 用途&#xff1a; 通俗来说&#xff1a; 考察一个人的智力情况&#xff0c;就直接看数学成绩就行(存在&#xff1a;数学、语文、英语成绩) 。就是找出一个最主要的特征&#xff0c;然后进行分析。 数据压缩 &#xff08;Data Compression&#xff09; &#xff0c;将高维数…

主成分分析法原理与MATLAB实现

1&#xff1a;主成分分析原理&#xff1a; 主成分分析法是利用降维的思想&#xff0c;把多指标转化为少数几个综合指标&#xff08;即主成分&#xff09;&#xff0c;其中每个主成分都能够反映原始变量的大部分信息&#xff0c;且所含信息互不重复。这种方法在引进多方面变量的…

主成分分析(PCA)原理及应用

在进行统计学分析中往往面临着比较难以抉择的权衡。以农学研究为例&#xff0c;在实验设计时&#xff0c;考虑到研究结论更能反应作物真实状态下的农艺性状&#xff0c;研究人员会尽可能的纳入较多的指标&#xff0c;但是&#xff0c;随着而来的是铺天盖地的数据让人难以下手&a…

PCA主成分分析原理与基础知识

笔记的主要内容是 PCA&#xff08;主成分分析&#xff09; 原理和基本知识&#xff0c;相关数学原理和核心概念。 什么是PCA分析&#xff1f; 主成分分析(PCA, principal component analysis)是一种数学降维方法,利用正交变换把一系列可能线性相关的变量转换为一组线性不相关的…

【机器学习】五、主成分分析原理

主成分分析(Principal Component Analysis)&#xff0c;简称PCA&#xff0c;是机器学习中一种常用来进行数据降维操作的方法。PCA通过矩阵变换&#xff0c;将高维数据变换到低维。本文主要分享PCA的数学原理&#xff0c;帮助大家了解PCA降维的理论基础。码字不易&#xff0c;喜…

主成分分析原理详解

本博客前三节参考https://blog.csdn.net/program_developer/article/details/80632779 至于协方差矩阵的公式推导参考 http://blog.codinglabs.org/articles/pca-tutorial.html 1、背景 在许多领域的研究与应用中&#xff0c;通常需要对含有多个变量的数据进行观测&#xff0…

主成分分析原理及Python实现

主成分分析&#xff08;Principal Components Analysis, PCA&#xff09;是一种常用的数据分析手段&#xff0c;是图像处理过程中常用到的降维方法。对于一组不同维度之间可能存在线性相关关系的数据&#xff0c;PCA能够把这组数据通过正交变换变成各个维度之间线性无关的数据&…

主成分分析原理以及SPSS和Python实现

目录 [ 0 ] 一句话定义[ 1 ] 使用目的和使用条件[ 2 ] 基本思想和直观理解[ 3 ] 具体计算步骤[ 4 ] 求各个成分的累计贡献率[ 5 ] 主成分分析的SPSS和Python实现SPSS实现相关设置结果分析 Python实现 [ 6 ] 总结 [ 0 ] 一句话定义 主成分分析(principal component analysis,PCA…

主成分分析原理

文章目录 一、主成分操作步骤二、spss里面的设置三、一些概念的解释 一、主成分操作步骤 1、为消除量纲的影响&#xff0c;先对数据进行标准化处理&#xff1b; 2、计算相关系数&#xff1a;一般认为各变量之间的相关系数大于0.3较好&#xff1b; 3、KMO检验和Barlett&#…

PCA: Principal Components Analysis,主成分分析法原理

PCA&#xff1a; Principal Components Analysis&#xff0c;主成分分析法原理 1、引入 PCA算法是无监督学习专门用来对高维数据进行降维而设计&#xff0c;通过将高维数据降维后得到的低维数能加快模型的训练速度&#xff0c;并且低维度的特征具有更好的可视化性质。另外&…

【数据处理方法】主成分分析(PCA)原理分析

笔者最近在学习的过程需要使用一些数据分析和处理的方法&#xff0c;而PCA就是其中常用的一种手段。但在自学的过程中&#xff0c;由于笔者水平有限&#xff0c;对一些博客中的公式不是能很好理解&#xff08;数学不好的辛酸Ծ‸Ծ&#xff09;&#xff0c;导致总是对整个方法的…

主成分分析法原理简单理解及技术实现

主成分分析法 主成分分析是利用降维的思想,在损失很少信息的前提下,把多个指标转化为几个综合指标的多元统计方法。通常把转化生成的综合指标称为主成分,其中每个主成分都是原始变量的线性组合,且各个主成分之间互不相关,使得主成分比原始变量具有某些更优越的性能…

win10+tensorflow1.14+cuda10安装踩坑

tensorflow1.14安装记录 需要python3.7&#xff0c;cuda10&#xff0c;cudnn7.6&#xff0c;visual studio 2017 可以用visual studio 2017 community 版本 &#xff0c;win10 sdk要加上&#xff0c;build tools要装上 cuda10.0安装不上报错visual studio integration faile…