主成分分析(PCA)原理及过程_Dynamicw的博客-程序员宅基地

技术标签: 机器学习  Machine Learning  PCA  

首先,感谢一下这篇文章的作者:主成分分析原理及过程

PCA原理及过程

在机器学习中,对于数据维度过多问题,提出了一种降维算法叫做PCA算法。具体的降维:例如评估一个国家的GDP水平,需要考量到人口、收入、人均工资等等成千上万个因素。这每一个因素,我们叫做一个feature。如果feature过多,对于我们编写机器学习算法会有很大影响。而feature过多就是我们所说的维度灾难,为了解决这一问题,就提出了众多的降维算法,而今天所说的PCA只是其中一种。降维就是将原本过多的feature,映射到数量更少的feature组成的空间。当然了,映射也是随意映射就可以。需要按照一定的方法来进行数据的降维,下面就是PCA的主要过程:
在说算法流程之前需要知道协方差的概念,cov(X,Y)表示的意思就是X和Y的相关性,可以想象当cov(X,Y)为0时,就表示这两个X,Y之间不相关,对于我们的降维来说就是这两个维度要留下。
其次是样本的方差概念,方差表示的是维度的差异性大小,对于降维来说要选取差异大的,也就是方差大的。

  • 协方差矩阵
    在这里插入图片描述
    C i j = c o v ( X i , X j ) C_ij=cov(X_i,X_j) Cij=cov(Xi,Xj)
    首先求出来,上述的协方差矩阵。可以知道协方差矩阵对角线上的元素为对应维度的方差。
  • 求其特征值和与其对应的特征向量
    我们需要使除了对角线之外的元素全为0,因此需要对协方差矩阵进行对角化操作,利用线性代数的知识求出该协方差矩阵的特征值和特征向量,对角化后,对角线上全为特征值,我们可以使用对角化后的对角矩阵和对应的特征向量对原数据进行操作。
  • 选取前K个最大特征值对应的特征向量作为新的维度空间
    对角化后的对角线上的元素就是协方差矩阵的特征值,同时这些值也表示这方差,因为要选取方差最大的,所以选取特征值大的K个对应的特征向量作为新的维度空间。
  • 将原有数据映射到新的维度空间
    将原数据映射到新的维度空间,就是将原有数据与新选出的特征向量组成的矩阵相乘,得到原有数据在新的空间中每个维度上的投影分量。
    下面使用一个例子来演示一下映射过程:
    在这里插入图片描述
    如上图,在XOY坐标系中有两个向量OA和OB且他们的模长都为1
    O A = ( c o s θ , s i n θ ) a n d O B = ( c o s ( θ + α ) , s i n ( θ + α ) ) OA=(cos\theta,sin\theta) and OB=(cos(\theta+\alpha),sin(\theta+\alpha)) OA=(cosθ,sinθ)andOB=(cos(θ+α),sin(θ+α))
    现将OA,OB转换到X’OY’坐标系中,新坐标轴的单位向量为:
    O X ′ = ( c o s θ , s i n θ ) a n d O Y ′ = ( − s i n ( θ ) , c o s ( θ ) ) OX'=(cos\theta,sin\theta) and OY'=(-sin(\theta),cos(\theta)) OX=(cosθ,sinθ)andOY=(sin(θ),cos(θ))
    所以将原有的坐标与每一个新的坐标轴做内积即可得到该向量在新的坐标轴上的坐标,即:
    O A ′ = ( O A ∗ O X ′ T , O A ∗ O Y ′ T ) = ( 1 , 0 ) OA' = (OA*OX'^T,OA*OY'^T)=(1,0) OA=(OAOXT,OAOYT)=(1,0)
    O B ′ = ( O B ∗ O X ′ T , O B ∗ O Y ′ T ) OB' = (OB*OX'^T,OB*OY'^T) OB=(OBOXT,OBOYT)
    为了快速计算,通常写成矩阵的形式:
    [ O A ′ O B ′ ] = [ O A O B ] [ O X ′ T O Y ′ T ] \begin{bmatrix} OA' \\OB' \\ \end{bmatrix} =\begin{bmatrix} OA \\OB \\ \end{bmatrix}\begin{bmatrix} OX'^T & OY'^T \\ \end{bmatrix} [OAOB]=[OAOB][OXTOYT]
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_25105061/article/details/107402307

智能推荐

主成分分析_主成分分析_主成分分析PCA的matlab实现_源码

主成分分析的3套不同方法,每一行均有中文注释

pca_ica_ICA_PCA奇异_主成分分析pca_PCA_ICA_源码

独立分析 主成分分析 可以提取矩阵独立成分与主成分,显示空间特征与时间特征以及对应的奇异分析用于计算能进行奇异值分解等。主要用于数值的提取计算等。

主成分分析法PCA_pca_序列数据_主成分分析_源码

利用主成分分析方法对数据序列进行降维的程序

主成分分析_pca_主成分分析_源码

主成分分析代码。降维算法。matlab程序。有解释,非常详细

pca_normal_normal_点云_pca_点云主成分分析_法向量计算_源码

点云主成分分析和法向量计算的python源代码,可下载直接应用

PCA主成分分析_pca_PCA数据分析_主成分分析_源码

实现pca主成分分析,从高维数据降至低维数据

R包vegan的群落PCA分析_vegan_生物群落多样性与环境因子主成分分析_环境因子pca_源码

PCA分析,环境生物多样性与环境因子相互联系的主成分分析,数据格式与源代码

pca_pca_主成分分析pca_源码

运用pca进行主成分分析,对数据进行降维处理,实现故障检测

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

“微信公众号”本文同步更新在我的微信公众号里,地址:https://mp.weixin.qq.com/s/Xt1vLQfB20rTmtLjiLsmww本文同步更新在我的知乎专栏里面:主成分分析(PCA)原理详解 - Microstrong的文章 - 知乎...

ENVI5.3.1使用Landsat 8影像进行主成分分析实例操作_PeanutbutterBoh的博客-程序员宅基地_envi主成分分析.pdf

主成分分析直接在裁剪后的新郑市区域进行操作。 导入新郑市区域的影像subsect_xinzheng.dat,在工具箱中选择Transform——PCA Rotation——Forward PCA Rotation New Statics and Rotate工具。在弹出的对话框中选择...

PCA降维_PCA数据降维_PCA手写体降维_主成分分析_MNIST降维_源码

使用子空间方法中的PCA主成分分析方法对mnist数据集手写体数据进行降维。

主成分分析(内含完整的PCA的MATLAB代码以及原理讲解的Word文档)

主成分分析(内含完整的PCA的MATLAB代码以及原理讲解的Word文档)

主成分分析(PCA)-Python代码-信息分析与预测

信息分析与预测的实验,Python写的代码,萌新代码,勿喷,仅仅只是方便没时间写实验的朋友,直接用python打开就能运行

PCA_主成分分析法代码_主成分分析_源码

主成分分析法代码,使用协方差矩阵计算,使用JAMA.JAR包

PCA_pca_matlab_主成分分析_源码

基于想要的主成分数量和精确度,采用matlab的pca函数进行主成分分析

python sklearn PCA 实例-主成分分析

python sklearn decomposition PCA 主成分分析 主成分分析(PCA) 1、主成分分析(Principal Component Analysis,PCA)是最常用的一种降维方法, 通常用于高维数据集的探索与可视化,还可以用作数据压缩和预处理 2、...

简单pca_pca将多维_PCA程序_主成分分析_源码

主成分分析法,对多维矩阵提取出特征向量,简单明了。

PCA_PCA主成分分析_源码

主成分分析,保证所选自变量的特性都能包含在新构造的变量中,实现对多个自变量降维,简化方程

主成分分析法(PCA)原理介绍(课件)

主成分分析法(PCA)原理介绍,课件很详细,值得观看,

matlab 实现主成分分析(PCA)

基于matlab实现PCA降维算法,可用于多维数据的损失最小化压缩,内附全代码

用主成分分析PCA估计噪声

用主成分分析PCA估计噪声方差,里面有代码和对应论文,可以查阅,代码是matlab的

pca_数据统一趋势_PCA主成分分析_源码

主成分分析:(1) 根据指标的属性将原始数据统一趋势化(2) 利用协方差、相关系数矩阵进行主成分分析,判断可否用第一主成分排名?

PCA主成分分析法_特征提取,pca主成分分析应用,Python源码

PCA,python实现,包含手工写的PCA完整实现过程,以及直接从sklearn调用包进行PCA降维,前者可以帮助理解PCA的理论求解过程,后者可以直接替换数据迅速上手,里面还包含一个案例,降维到二维空间以后的散点图。...

机器学习之主成分分析PCA数据降维

PCA即主成分分析技术。主成分分析也称主分量分析,旨在利用降维的思想,把多指标转化为少数几个综合指标。 在统计学中,主成分分析PCA是一种简化数据集的技术。它是一个线性变换。这个变换把数据变换到一个新的坐标...

PCA主成分分析java实现

用java实现的主成分分析算法,用了Jama.Matrix,用的是Jama-1.0.2.jar。代码有备注,希望有帮助。

PCA_Analysis_Using_Python-源码

PCA_Analysis_Using_Python 使用sklearn对乳腺癌数据集进行的主成分分析。 使用巴特利特(Bartlett)检验和KMO检验,因子载荷以及如何将主成分用作高维数据的降维技术的解释

主成分分析(PCA)过程监测和故障识别-----Python实现

2、对正常数据建立PCA模型 3、测试故障数据并画图 4、计算贡献率图 1、生成数据 #生成正常数据 num_sample=100 a = 10*np.random.randn(num_sample, 1) x1 = a + np.random.randn(num_sample, 1) x2 = 1*np.sin(a) +...

PCA(主成分分析)-------原理,推导,步骤、实例、代码

最近一直在学习主成分分析(PCA),所以想把最近学的一点知识整理一下,如果有不对的还请大家帮忙指正,共同学习。一、PCA简介1.概念:主成分分析是一种统计方法,通过正交变换将一组可能存在相关性的变量转换成一组...

PCA主成分分析实现方法Matlab

PCA主成分分析实现方法Matlab;详细请查看博客资料:http://blog.csdn.net/guyuealian/article/details/68487833

随便推点

推荐文章

热门文章

相关标签