美文网首页
降维算法1_PCA 原理理解

降维算法1_PCA 原理理解

作者: 我还是霸霸 | 来源:发表于2020-10-30 11:19 被阅读0次

PCA基本原理

1.引入及理解

What

PCA(主成分分析)是采取一种数学降维的方法,找出几个综合变量来代替原来众多的变量,使这些综合变量能尽可能地代表原来变量的信息量,而且彼此之间互不相关。

Why

多变量问题是经常会遇到的。变量太多,无疑会增加分析问题的难度与复杂性。

How

在许多实际问题中,多个变量之间是具有一定的相关关系的。因此,在各个变量之间相关关系研究的基础上,用较少的新变量代替原来较多的变量,而且使这些较少的新变量尽可能多地保留原来较多的变量所反映的信息?

几何解释

此情况下,对于上图的数据分布,数据较较分散的分布在X2上,X1方向上的数据取值近似,将数据在X1上的取值去掉,保留在X2上的取值。

此情况下,对于原先的X1、X2坐标系下,数据在X1和X2上的取值都比较均匀,去掉任一坐标维度对数据都有很大的影响(导致数据重叠)。对于新建的y1、y2红色坐标系,这个问题就同图1问题了,保留数据在y1上取值信息,去掉数据在y2上的取值信息。

从几何解释中可以得出:

主成分分析可以让数据的投影到那些数据分布比较分散的维度上,如上图的y1,忽视数据分布较集中的维度,如上图的y2,保留较少的维度表示数据,进而达到降维的目的。

2.问题

如何可以将数据投影到分布分散的平面内,而忽略掉分布集中的平面。如上面的图2,大部分数据投影到y1坐标系中的话,数据分布会比较分散,投影到x1、x2等其他坐标轴分布会相对集中,其中,投影到y2上面分布最集中。所以我们尽可能将数据转化到红色坐标系,然后去掉y2坐标 ?

3.PCA原理

主成分:这些互相正交的新变量(上图y1,y2)是原先变量的线性组合(矩阵变换),叫做主成分。(principal component)。

从几何解释可以看出:

第一个要求:使得样本在选择的基底(坐标轴)上尽可能的分散

我们知道方差可以用来表示数据之间的离散程度,那么要求数据在基底上分散即就是样本在这个基底上的坐标的方差(数据之间的离散程度)尽可能大。

第二个要求:使得各个选择的基底关联程度最小。(正交)

协方差矩阵定义:对n个维度,任意两个维度都计算一个协方差,组成矩阵,定义如下:

​	C_{n\times{n}}=(c_{i,j}, c_{i,j}=cov(Dim_{i},Dim_{j}))

直观的对于一个含有x,y,z三个维度的样本,协方差矩阵如下:

C=\begin{bmatrix}cov(x,x)&cov(x,y)&cov(x,z)\\cov(y,x)&cov(y,y)&cov(y,z)\\cov(z,x)&cov(z,y)&cov(z,z)\end{bmatrix}

类比上式,可以得出,对于原mxn大小的样本矩阵,其协方差矩阵的对角线代表了原来样本在各个维度上的方差,其他元素代表了各个维度之间的协方差。

对于上述两点要求,也就是经过PCA处理后的数据矩阵,它的协方差矩阵,对角线上的元素数值大(方差大,满足第一点要求),对角线以外的元素为0(协方差为零,选择的基底正交,满足第二点要求)。即处后的数据矩阵协方差为diag(\alpha_1,\alpha_2...,\alpha_n)​对角阵形式。

假设对于原始数据矩阵X_{(m,n)},经PCA降维后的矩阵Y=XP​,要使得Y的协方差矩阵为​Cov(Y)=diag(\alpha_1,\alpha_2...,\alpha_n)的形式,有:

\begin{aligned}Cov(Y) &= \frac{1}{n-1}Y^TY\\&=\frac{1}{n-1}(XP)^TXP\\&=\frac{1}{n-1}P^TX^TXP\end{aligned}

由以上形式知:经PCA处理后的矩阵Y_{(m,k)}=XP^`​中的P^` ​即就是原始矩阵​X的协方差矩阵Cov(X)=\frac{1}{n-1}X^TX​每个特征值对应特征向量组成的特征矩阵。

Cov(x)​的特征值​\lambda_1,\lambda_2...,\lambda_n从小到大排列后,取前k​大特征值对应的特征向量组成矩阵P^`​,Y=XP^`​即为保留主成分个数为​的降维后的矩阵,通常​k\lt{n}

数学优化方法对于PCA原理的推导

4.最好的k和误差

可解释性方差大小:即特征矩阵​中每个新特征向量所带的信息量大小,所对应的特征值越大,方差越大,信息量越大。

可解释性方差贡献率:降维后每个新特征向量所占的信息量占原始数据总信息量的百分比。

\frac{\lambda_i}{\lambda_1+\lambda2+...+\lambda_n}

观察实际所需指标随着k的阈值选取的变化情况,择优选取。

假设选取前​主成分,降维后的矩阵即为​\mathbf{Y_{(m,k)}={X}_{(m,n)}P_{(n,k)}}\quad(1)

对于上式 :​\mathbf{\hat{X}_{(m,n)}=Y_{(m,k)}P_{(n,k)}^{-1}}为经过PCA降维后再重构的矩阵。

\mathbf{\hat{X}_{(m,n)}=\mathbf{X_{(m,n)}}\mathrm{?}}

假设: ​​X_{(1,3)}=\begin{bmatrix}1&0&1\end{bmatrix}P_{(3,3)}=\begin{bmatrix}1&0&0\\0&1&0\\0&0&1\end{bmatrix},取P​的2列,即就是k=2,得​P_{(3,2)}=\begin{bmatrix}1&0\\0&1\\0&0\end{bmatrix}

由(1)得​​Y_{(1,2)}=\begin{bmatrix}1&0\end{bmatrix}P_{(3,2)}的广义右逆矩阵​P_{(3,2)}^{-1}=\begin{bmatrix}1&0&0\\0&1&0\end{bmatrix}

可得:\begin{aligned}\hat{X}_{(1,3)}&=Y_{(1,2)}P_{(3,2)}^{-1}\\&=\begin{bmatrix}1&0&0\end{bmatrix}\end{aligned}

所以,\mathbf{\hat{X}_{(m,n)}\neq\mathbf{X_{(m,n)}}} ​,且重构的误差来源于,降维后P矩阵信息的丢失,求​时的不可还原。

\begin{aligned}error&=\mathbf{\hat{X}_{(m,n)}-\mathbf{X_{(m,n)}}}\\&=\mathbf{Y_{(m,k)}P_{(n,k)}^{-1}-X_{(m,n)}}\end{aligned}

另一种理解

5.算法步骤

设有m条n维数据。

1.样本矩阵X_{m\times{n}}

2.将X的每一列进行零均值化,即减去这一列的均值,得到矩阵X^{`}​;(为求协方差矩阵)

3.求出协方差矩阵​C=\frac{1}{n-1}X^{`T}X^{`}

4.求出协方差矩阵的特征值以及对应的特征向量

5.将特征向量按对应特征值大小按列组成矩阵,取前k列组成矩阵​P_{n,k}

6.Y=XP​即为降维到k维后的数据。

对于图像数据的重构,通过步骤6,由​\hat{X}_{m,n}=Y_{m,k}P^{-1}_{n,k}可得。

6.应用举例

a.鸢尾花数据(150x4),有三类品种,4个特征,花萼长度、宽度、花瓣长度、宽度

经PCA降维至2,即150x2, 进行可视化。

b.人脸数据 1348x62x47(1348x2914)

原始图片

选择降维至150,​P^‘维度2914x150,查看P^‘​(新的特征空间)图像:

降维后还原到原空间得到的数据和原始图像:(第一行为原始图像,第二行为降维后还原图像)

代码

相关文章

  • 降维算法1_PCA 原理理解

    PCA基本原理 1.引入及理解 What PCA(主成分分析)是采取一种数学降维的方法,找出几个综合变量来代替原来...

  • PCA

    PCA降维 一、算法原理 降维算法 还原算法 二、算法实现 三、scikit-learn PCA 四、PCA降噪 ...

  • 基于Spark的机器学习实践 (十) - 降维

    通过讲解PCA算法的原理,使大家明白降维算法的大致原理,以及能够实现怎么样的功能。结合应用降维算法在分类算法使用之...

  • ML-主成分分析PCA与梯度上升法

    算法特点非监督机器学习算法,主要用于数据降维;降维可以提高算法效率,同时帮助可视化,以便于人类理解更好的理解数据;...

  • PCA原理与Sklearn参数详解

    目录 1、PCA算法原理 2、总结 1、PCA算法原理 2、总结:本文主要介绍了PCA降维原理,并介绍了Sklea...

  • 深度学习知识点汇总-机器学习基础(8)

    2.8 LDA的算法原理和算法步骤 输入:数据集 ,其中样本 是维向量,,降维后的目标维度 。 定义以下符号: 为...

  • PCA

    降维算法 PCA主成分分析, 是无监督的降维方法, 可以将你的数据降低到n-1维. 它有几种不同的方式去解释原理,...

  • 降维算法之PCA

    机器学习降维算法

  • Sklearn中的降维究竟是如何实现的

    sklearn中的降维算法 1. PCA与SVD sklearn中降维算法都被包括在模块decomposition...

  • 吴恩达机器学习-Chapter 15 降维

    目的:降维的应用、概念、及算法。降维的3个目的:数据压缩、加速算法(缩小特征变量)、数据可视化。降维本身也是一种无...

网友评论

      本文标题:降维算法1_PCA 原理理解

      本文链接:https://www.haomeiwen.com/subject/cugdvctx.html