Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >理解主成分分析

理解主成分分析

作者头像
Alan Lee
发布于 2019-05-28 04:04:34
发布于 2019-05-28 04:04:34
7370
举报
文章被收录于专栏:Small CodeSmall Code

译者注:

  • 本文翻译自 Rishav Kumar 于 2019 年 1 月 2 日发表的文章 Understanding Principal Component Analysis
  • 文中括号或者引用块中的 斜体字 为对应的英文原文或者我自己注释的话(会标明「译者注」),否则为原文中本来就有的话
  • 文中的「我」均指原作者 Rishav Kumar
  • 目录保留英文原文
  • 本人水平有限,如有错误欢迎指出
  • 能力尚可建议阅读英文原文
  • 文章同步发表至 我的个人独立博客

本文的目的是让读者能够通过必要的数学证明来详细了解主成分分析。

在现实世界的数据分析任务中,我们面对的数据通常较为复杂,例如多维数据。我们绘制数据并希望从中找到各种模式,或者使用数据来训练机器学习模型。一种看待维度(dimensions)的方法是假设你有一个数据点 xxx,如果我们把这个数据点想象成一个物理对象,那么维度就是仅仅是一个视图(译者注:这里的视图应该是和三视图中的视图是一个概念)的基础(basis of view),就像从横轴或者纵轴观察数据时的位置。

随着数据维度的增长,可视化数据的难度和数据计算量也随之增长。所以,如何减少数据维度?

  • 较少冗余的维度
  • 仅仅保留最重要的维度

break1

首先来理解一些术语:

方差(Variance:它是数据离散程度的一个度量方法。数学上来说,就是数据与其平均值的误差平方和的平均。我们使用如下的公式来计算方差 var(x)var(x)var(x):

var(x)=Σ(xi−xˉ)2Nvar(x) = \frac{\Sigma(x_i-\bar{x})^2}{N}var(x)=NΣ(xi​−xˉ)2​

协方差(Covariance):它衡量两组有序数据中相应元素在同一方向上移动的程度(译者注:或者通俗的来讲,就是表示两个变量的变化趋势)。两个变量 xxx 和 yyy 的协方差 cov(x,y)cov(x,y)cov(x,y) 可以如下计算:

cov(x,y)=Σ(xi−xˉ)(yi−yˉ)Ncov(x,y) = \frac{\Sigma(x_i-\bar{x})(y_i-\bar{y})}{N}cov(x,y)=NΣ(xi​−xˉ)(yi​−yˉ​)​

其中,xix_ixi​ 是 xxx 在第 iii 个维度的值(译者注:注意和 Python 中的多维列表中的「维」做区分,数学上来说,这里的 xxx 只是一个向量),xˉ\bar{x}xˉ 和 yˉ\bar{y}yˉ​ 是相应的平均值。

协方差的一种理解方式是两个数据集是如何相关关联的。

正协方差意味着 XXX 和 YYY 是正相关的,即 XXX 增长 YYY 也增长。负协方差则意味着完全相反的关系。然而协方差为零意味着 XXX 和 YYY 不相关。

Continue break1

现在让我们来考虑一下数据分析的需求。

由于我们想要找到数据中的模式,所以我们希望数据分布在每个维度上。同时,我们也希望各个维度之间是独立的。这样的话如果数据在某些 nnn 维表示中具有高协方差时,我们可以用这些 nnn 维的线性组合来替代原来的维度。现在数据就变成仅仅依赖于这 nnn 维的线性组合了。

那么,主成分分析(PCA)是干什么的?

PCA 试图寻找一组新的维度(或者叫一组基础视图),使得所有维度都是正交的(所以线性无关),并根据数据在他们上面的方差进行排序。这就意味着越重要的成分越会排在前面(越重要 = 更大方差/数据分布更广)

PCA 的步骤如下:

  1. 计算数据点的协方差矩阵 XXX
  2. 计算特征向量和相应的特征值
  3. 根据特征值,降序排列对应的特征向量
  4. 选择前 kkk 个特征向量作为新的 kkk 维
  5. 将原始的 nnn 维数据变换为 kkk 维

为了理解 PCA 的详细计算过程,你需要对特征向量(eigen vectors)和特征值(eigen values)有所了解,你可以参考这个对特征值和特征向量的直观解释

确保在继续阅读之前你已经理解了特征向量和特征值。

[Covariancematrix]⋅[Eigenvector]=[eigenvalue]⋅[Eigenvector][Covariance matrix] \cdot [Eigenvector] = [eigenvalue] \cdot [Eigenvector][Covariancematrix]⋅[Eigenvector]=[eigenvalue]⋅[Eigenvector]

假设我们已经了解了方差和协方差,然后我们来看下协方差矩阵是什么样的:

[VaCa,bCa,cCa,dCa,eCa,bVbCb,cCb,dCb,eCa,cCb,cVcCc,dCc,eCa,dCb,dCc,dVdCd,eCa,eCb,eCc,eCd,eVe]\begin{bmatrix} V_a & C_{a,b} & C_{a,c} & C_{a,d} & C_{a,e} \\ C_{a,b} & V_b & C_{b,c} & C_{b,d} & C_{b,e} \\ C_{a,c} & C_{b,c} & V_c & C_{c,d} & C_{c,e} \\ C_{a,d} & C_{b,d} & C_{c,d} & V_d & C_{d,e} \\ C_{a,e} & C_{b,e} & C_{c,e} & C_{d,e} & V_e \\ \end{bmatrix}⎣⎢⎢⎢⎢⎡​Va​Ca,b​Ca,c​Ca,d​Ca,e​​Ca,b​Vb​Cb,c​Cb,d​Cb,e​​Ca,c​Cb,c​Vc​Cc,d​Cc,e​​Ca,d​Cb,d​Cc,d​Vd​Cd,e​​Ca,e​Cb,e​Cc,e​Cd,e​Ve​​⎦⎥⎥⎥⎥⎤​

上面的矩阵即是一个 5 维数据集的协方差矩阵(译者注:原文说是 4 维,我觉得有可能笔误,我这里更正为 5 维),a、b、c、d 和 e。其中 VaV_aVa​ 表示在 a 维度上的方差,Ca,bC_{a,b}Ca,b​ 表示 a 与 b 之间的协方差。

如果我们有一个 m×nm \times nm×n 的矩阵,也就是说有 nnn 个数据点,每个数据点 mmm 维(译者注:这是原文的说法,暂且将数据点理解为样本,我个人觉得,一般是以行表示样本,列表示特征,而这里的说法正好相反),然后协方差矩阵可以如下计算:

Cx=1n−1(X−Xˉ)(X−Xˉ)TC_x = \frac{1}{n-1}(X-\bar{X})(X-\bar{X})^TCx​=n−11​(X−Xˉ)(X−Xˉ)T

其中 XTX^TXT 是 XXX 的转置。

需要注意的是,协方差矩阵包括:

  • 每个维度上的方差作为主对角线元素
  • 每两个维度之间的协方差作为非对角线元素

而且,协方差矩阵是对称的。正如我们之前说的那样,我们希望数据分布的更广,即它应该在某个维度上具有高方差。我们也想要去除相关性高的维度,即维度之间的协方差应该为 0(他们应该是线性无关的)。因此,我们的协方差矩阵应该具有:

  • 主对角线元素的值比较大
  • 非对角线元素为 0

我们称之为对角阵(diagonal matrix)。

所以我们必须变换原始数据点,才能使得他们的协方差矩阵为对角阵。把一个矩阵变换为对角阵的过程称为对角化diagonalization)。

在进行 PCA 之前记得归一化(normalize)你的数据,因为如果我们使用不同尺度的数据(即这里的特征),我们会得到误导性的成分。如果特征尺度不同,那么我们也可以简单地使用相关性矩阵而不是协方差矩阵。为了简化这篇文章,我假设我们已经归一化了数据。

让我们来定义一下 PCA 的目标:

  • 找到可以无损地表示原始数据的线性无关的维度(或者基础视图)
  • 这些新找到的维度应该能够让我们预测或者重建原始维度,同时应该最小化重建或者投影误差

让我们来理解一下我所说的投影误差。假设我们要把一个 2 维数据变换成 1 维。所以我们就需要找到一条直线然后把数据点投影到上面(一条直线就是 1 维的)。我们可以找到很多条直线,让我们来看下其中两种:

假设洋红色(magenta)线就是我们的新维度。

如果你看到了红色线(连接蓝色点的投影和洋红色线),那么这每个数据点到直线的垂直距离就是投影误差。所有数据点的误差的和就是总投影误差(译者注:这里每个数据点的误差可以是绝对值形式或者平方误差形式)。

我们的新数据点就是原始蓝色数据点的投影(红点)。正如我们所看到的,我们将 2 维数据投影到 1 维空间,从而将他们变换成 1 维数据。那条洋红色的线被称为主轴principal axis)。由于我们是投影到一个维度,所有我们只有一个主轴。

很明显,我们选择的第二条直线就比较好,因为

  • 投影误差比第一条直线小
  • 与第一种情况相比,投影后的数据点分布更广,即方差更大

上面提到的两点是有联系的,即如果我们最小化重建误差,那么方差也会增大。

为什么?

证明:https://stats.stackexchange.com/questions/32174/pca-objective-function-what-is-the-connection-between-maximizing-variance-and-m/136072#136072

到现在为止我们做的有:

  • 我们已经计算了原始数据矩阵 XXX 的协方差矩阵

现在我们要变换原始数据点,使得变换后的数据协方差矩阵为对角阵。那么如何做呢?

Y=PXY=PXY=PX

其中,XXX 为原始数据集,YYY 为变换后的数据集。

为了简便,我们忽略平均项并且假设数据已经中心化(be centered),即 X=(X−Xˉ)X = (X - \bar{X})X=(X−Xˉ),那么

Cx=1nXXTCy=1nYYT=1n(PX)(PX)T=1nPXXTPT=P(1nXXT)PT=PCxPT\begin{aligned} C_x &= \frac{1}{n}XX^T \\ C_y &= \frac{1}{n}YY^T \\ &= \frac{1}{n}(PX)(PX)^T \\ &= \frac{1}{n}PXX^TP^T \\ &= P(\frac{1}{n}XX^T)P^T \\ &= PC_xP^T \end{aligned} Cx​Cy​​=n1​XXT=n1​YYT=n1​(PX)(PX)T=n1​PXXTPT=P(n1​XXT)PT=PCx​PT​

这就是其中的原理:如果我们能找到 CxC_xCx​ 的特征向量矩阵并且用其作为矩阵 PPP(PPP 用于将 XXX 变换为 YYY,看上面的公式),那么 CyC_yCy​(变换后数据的协方差) 就是对角阵。所以 YYY 就是新的变换后的数据点。

现在,如果我们想要将数据变换为 kkk 维,那么我们可以选择矩阵 CxC_xCx​ 的前 kkk 个特征向量(根据特征值降序排列)组成一个矩阵,这就是矩阵 PPP。

如果我们有 mmm 维的 nnn 个原始数据点,那么 X:m×nX:m \times nX:m×n P:k×mP:k \times mP:k×m Y=PX:(k×m)(m×n)=(k×n)Y=PX:(k \times m)(m \times n)=(k \times n)Y=PX:(k×m)(m×n)=(k×n) 所以,我们变换后的矩阵将是 nnn 个数据点 kkk 维。

但是为什么这个原理有效呢?

证明:

首先让我们来看一些定理:

  • 定理 1:正交矩阵的逆是其转置,为什么? 令 AAA 是一个 m×nm \times nm×n 的正交矩阵(译者注:根据定义,正交矩阵一定是方阵,此处应 m=nm=nm=n),aia_iai​ 是第 iii 个列向量,矩阵 ATAA^TAATA 的第 ijijij 个元素为: (ATA)ij=aiTaj={1,if i = j0,otherwise\begin{aligned} (A^TA)_{ij} &= a_i^Ta_j \\\\ &= \begin{cases} 1, & \text{if $i$ = $j$} \\\\ 0, & \text{otherwise} \end{cases} \end{aligned}(ATA)ij​​=aiT​aj​=⎩⎪⎨⎪⎧​1,0,​if i = jotherwise​​ 即 ATA=IA^TA = IATA=I,所以 A−1=ATA^{-1} = A^TA−1=AT
  • 定理 2: 令 AAA 是一个实对称矩阵,λ1,λ2,⋯ ,λk\lambda_1,\lambda_2,\cdots,\lambda_kλ1​,λ2​,⋯,λk​ 是 AAA 的不同的特征值,ui∈Rnu_i \in R^nui​∈Rn 非零,且 1≤i≤k1 \leq i \leq k1≤i≤k,那么 u1,u2,⋯ ,uk{u_1,u_2,\cdots,u_k}u1​,u2​,⋯,uk​ 就组成一个正交规范集(orthonormal set)。 证明: 对于 i≠ji \neq ji̸​=j,且 1≤i,j≤k1 \leq i,j \leq k1≤i,j≤k,由于 AT=AA^T = AAT=A,我们有 λi⟨ui,uj⟩=⟨λiui,uj⟩=⟨Aui,uj⟩=⟨ui,ATuj⟩=⟨ui,Auj⟩=λj⟨ui,uj⟩\begin{aligned} \lambda_i \langle u_i,u_j \rangle &= \langle \lambda_iu_i,u_j \rangle \\\\ &= \langle Au_i,u_j \rangle \\\\ &= \langle u_i,A^Tu_j \rangle \\\\ &= \langle u_i,Au_j \rangle \\\\ &= \lambda_j \langle u_i,u_j \rangle \\\\ \end{aligned}λi​⟨ui​,uj​⟩​=⟨λi​ui​,uj​⟩=⟨Aui​,uj​⟩=⟨ui​,ATuj​⟩=⟨ui​,Auj​⟩=λj​⟨ui​,uj​⟩​ 由于 i≠ji \neq ji̸​=j,我们有 λi≠λj\lambda_i \neq \lambda_jλi​̸​=λj​,所以 ⟨ui,uj⟩=0\langle u_i, u_j \rangle = 0⟨ui​,uj​⟩=0。
  • 定理 3: 令 AAA 为 n×nn \times nn×n 的实对称矩阵且所有特征值都不相同,那么存在一个正交矩阵 PPP,使得 P−1AP=DP^{-1}AP=DP−1AP=D,其中 DDD 为对角阵,对角元素为 AAA 的特征值。 证明: 令 AAA 有特征值 λ1,λ2,⋯ ,λn\lambda_1,\lambda_2,\cdots,\lambda_nλ1​,λ2​,⋯,λn​,ui∈Rnu_i \in R^nui​∈Rn 且 ∣ui∣=1|u_i| = 1∣ui​∣=1,Aui=λiuiAu_i=\lambda_iu_iAui​=λi​ui​,1≤i≤n1 \leq i \leq n1≤i≤n。通过推论,矩阵 P=[u1,u2,⋯ ,un]P=[u_1,u_2,\cdots,u_n]P=[u1​,u2​,⋯,un​] 是可逆的且 P−1AP=DP^{-1}AP=DP−1AP=D,是一个对角阵。而且,由定理 2,(u1,u2,⋯ ,un)(u_1,u_2,\cdots,u_n)(u1​,u2​,⋯,un​) 是一个正交规范集,所以 PPP 确实是一个正交矩阵。

有了这些定理,我们可以说:

一个对称阵可以通过其正交特征向量进行对角化。正交规范向量(orthonormal vectors)只是规范化的正交向量(orthogonal vectors)。

译者注:关于 orthonormal vectors 和 orthogonal vectors 的区别可参见 6.3 Orthogonal and orthonormal vectors - UCL,我摘抄部分如下:

Definition. We say that 2 vectors are orthogonal if they are perpendicular to each other. i.e. the dot product of the two vectors is zero. Definition. A set of vectors S is orthonormal if every vector in S has magnitude 1 and the set of vectors are mutually orthogonal.

Cy=PCxPT=P(EDE)PT=P(PTDP)PT=(PPT)D(PPT)=(PP−1)D(PP−1)CY=D\begin{aligned} C_y &= PC_xP^T \\\\ &= P(E^DE)P^T \\\\ &= P(P^TDP)P^T \\\\ &= (PP^T)D(PP^T) \\\\ &= (PP^{-1})D(PP^{-1}) \\\\ C_Y &= D \end{aligned}Cy​CY​​=PCx​PT=P(EDE)PT=P(PTDP)PT=(PPT)D(PPT)=(PP−1)D(PP−1)=D​

很明显是 PPP 对角化了 CyC_yCy​。这就是 PCA 的目标,我们可以使用矩阵 PPP 和 CyC_yCy​ 来总结 PCA 的结果。

  • X 的主成分是 CxC_xCx​ 的特征向量
  • CyC_yCy​ 的第 iii 个对角元素是 XXX 在 iii 维度上的方差

总结:

[new data]k×n=[top k eigenvectors]k×m[original data]m×n[\text{new data}]_{k\times n} = [\text{top $k$ eigenvectors}]_{k \times m}[\text{original data}]_{m \times n}[new data]k×n​=[top k eigenvectors]k×m​[original data]m×n​

Note:PCA 是一种分析方法。你可以使用 SVD 做 PCA,或者使用特征分解(就像我们这里做的一样)做 PCA,或者使用其他方法做 PCA。SVD 只是另一种数值方法。所以不要混淆 PCA 和 SVD 这两个术语。但是有时我们会因为性能因素选择 SVD 而不是特征分解或者其他方法(这个不用关心),我们会在接下来的文章中探索 SVD。

译者注:关于 SVD,有兴趣的话可以参考我写的另一篇文章:奇异值分解 SVD 的数学解释

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019年04月20日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
机器学习(27)【降维】之主成分分析(PCA)详解
关键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第一 【Python】:排名第三 【算法】:排名第四 前言 主成分分析(Principal components analysis,以下简称PCA)是最重要的降维方法之一。在数据压缩消除冗余和数据噪音消除等领域都有广泛的应用。一般我们提到降维最容易想到的算法就是PCA,下面我们就对PCA的原理做一个总结。 PCA基本思想 PCA顾名思义,就是找出数据里最主要的方面,用数据里最主要的方面来代替原始数据。具体的,假如我们的数据集是n维的,共有
昱良
2018/04/04
2.5K0
机器学习(27)【降维】之主成分分析(PCA)详解
PCA主成分分析(下)
哦……可惜数学实际上没那么多想象的浪漫,它的极致应如潜入深海之渊,耐得住寂寞,踏实严谨。
流川疯
2020/08/10
7530
PCA主成分分析(下)
主成分分析到底怎么分析?
PCA(Principal Component Analysis)是一种常用的数据分析方法。PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降维。 PCA的作用 你手上有一批数据,但是特征太多,你感觉数据太稀疏了 你选了一堆特征,但是感觉某些特征之间的相关性太高了,比如用户月消费预测的时候,你选了用户身高以及用户性别这两个特征,一般男生的身高比较高,你觉得特征有点冗余 你的小霸王内存不够,内存只有4个G,装不下太大的矩阵,但是你又不想减少训练数据,N
智能算法
2018/04/03
1.3K0
主成分分析到底怎么分析?
简单易学的机器学习算法——主成分分析(PCA)
       对于现在维数比较多的数据,我们首先需要做的就是对其进行降维操作。降维,简单来说就是说在尽量保证数据本质的前提下将数据中的维数降低。降维的操作可以理解为一种映射关系,例如函数
felixzhao
2019/02/13
9260
简单易学的机器学习算法——主成分分析(PCA)
通俗易懂的讲解奇异值分解(SVD)和主成分分析(PCA)
奇异值分解(The Singular Value Decomposition,SVD)
deephub
2020/06/17
2.6K0
R语言 主成分分析PCA(绘图+原理)
PCA 是一种较为常用的降维技术,PCA 的思想是将n维特征映射到k维上,这k维是全新的正交特征。这k维特征称为主元,是重新构造出来的k维特征。在 PCA 中,数据从原来的坐标系转换到新的坐标系下,新的坐标系的选择与数据本身是密切相关的。其中,第一个新坐标轴选择的是原始数据中方差最大的方向,第二个新坐标轴选取的是与第一个坐标轴正交且具有最大方差的方向,依次类推,我们可以取到这样的k个坐标轴。
拴小林
2021/05/31
14.2K0
R语言 主成分分析PCA(绘图+原理)
机器学习十大经典算法之PCA主成分分析
主成分分析算法(PCA)是最常用的线性降维方法,它的目标是通过某种线性投影,将高维的数据映射到低维的空间中,并期望在所投影的维度上数据的信息量最大(方差最大),以此使用较少的数据维度,同时保留住较多的原数据点的特性。
墨明棋妙27
2022/09/23
8880
主成分分析(PCA)原理总结
    主成分分析(Principal components analysis,以下简称PCA)是最重要的降维方法之一。在数据压缩消除冗余和数据噪音消除等领域都有广泛的应用。一般我们提到降维最容易想到的算法就是PCA,下面我们就对PCA的原理做一个总结。
刘建平Pinard
2018/08/14
1.1K0
主成分分析(PCA)原理总结
【机器学习-无监督学习】降维与主成分分析
  在上一篇文章聚类中,我们介绍了无监督学习的重要问题之一:聚类问题,并主要讲解了k均值算法。结尾处我们提到,在解决复杂聚类问题时,第一步通常不会直接使用k均值算法,而是会先用其他手段提取数据的有用特征。对于高维复杂数据来说,其不同维度代表的特征可能存在关联,还有可能存在无意义的噪声干扰。因此,无论后续任务是有监督学习还是无监督学习,我们都希望能先从中提取出具有代表性、能最大限度保留数据本身信息的几个特征,从而降低数据维度,简化之后的分析和计算。这一过程通常称为数据降维(dimensionality reduction),同样是无监督学习中的重要问题。本文就来介绍数据降维中最经典的算法——主成分分析(principal component analysis,PCA)。
Francek Chen
2025/01/22
2370
【机器学习-无监督学习】降维与主成分分析
PCA: Principal Components Analysis,主成分分析法原理
PCA: Principal Components Analysis,主成分分析法原理 1、引入   PCA算法是无监督学习专门用来对高维数据进行降维而设计,通过将高维数据降维后得到的低维数能加快
学到老
2018/03/19
1.5K0
PCA: Principal Components Analysis,主成分分析法原理
主成分分析(PCA)的教程和代码
数据是机器学习模型的燃料。也许你有很多ML技术可以选择并应用于特定问题,但如果你没有很多好的数据,你就无法做的深入。数据通常是机器学习应用程序中改善性能的最大驱动因素。
AiTechYun
2018/12/13
2.6K0
主成分分析(PCA)的教程和代码
原创 | 一文读懂主成分分析
文:王佳鑫审校:陈之炎 本文约6000字,建议阅读10+分钟本文带你了解PCA的基本数学原理及工作原理。 概述 主成分分析PCA(Principal Component Analysis)是一种常用的数据分析方法。PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降维。 本文用直观和易懂的方式叙述PCA的基本数学原理,不会引入严格的数学推导。希望读者在看完这篇文章后能更好地明白PCA的工作原理。 一、降维概述 1.1 数组和序列(Series)的维度
数据派THU
2022/09/01
1.1K0
原创 |  一文读懂主成分分析
【机器学习】--主成分分析PCA降维从初识到应用
主成分分析(Principal Component Analysis,PCA), 是一种统计方法。通过正交变换将一组可能存在相关性的变量转换为一组线性不相关的变量,转换后的这组变量叫主成分。
LhWorld哥陪你聊算法
2018/09/13
1.7K0
【机器学习】--主成分分析PCA降维从初识到应用
Python AI 教学 | 主成分分析(PCA)原理及其应用
假如你是一家淘宝店店主,你所负责运营的淘宝店2018年全年的流量及交易情况可以看成是一组记录的集合,其中每一天的数据是一条记录,(日期,浏览量,访客数,下单数,成交数,成交金额),这是一个六维的数据,但我们可以发现,“浏览量”和“访客数”往往具有较强的相关关系,而“下单数”和“成交数”也具有较强的相关关系,如果删除其中一个指标,不会丢失太多信息。我们知道,很多机器学习算法的复杂度和数据的维数有着密切关系,甚至与维数呈指数级关联。在实际机器学习中处理成千上万甚至几十万维的情况也并不罕见,在这种情况下,机器学习的资源消耗是不可接受的,因此我们必须对数据进行降维。但降维意味着信息的丢失,不过鉴于实际数据(如上面所述的淘宝店数据)本身常常存在的相关性,我们可以想办法在降维的同时将信息的损失尽量降低,这就是我们要介绍的降维方法——PCA(主成分分析法)。
短短的路走走停停
2019/06/03
1.9K0
主成分分析PCA
如图所示,这是一个二维点云,我们想找出方差最大的方向,如右图所示,这个最大方向的计算,就是PCA做的事情。在高维情况下,PCA不光可以计算出最大方差方向,还可以计算第二大,第三大方向等。
NT4.4
2019/10/19
1.2K1
主成分分析PCA
机器学习算法之PCA算法
在机器学习中降维是我们经常需要用到的算法,在降维的众多方法中PCA无疑是最经典的机器学习算法之一,最近准备撸一个人脸识别算法,也会频繁用到PCA,本文就带着大家一起来学习PCA算法。
BBuf
2019/12/04
1.3K0
机器学习算法之PCA算法
基于主成分分析PCA的人脸识别
主成分分析(Principal Component Analysis,简称PCA)是最常用的一种降维方法。
叶茂林
2023/07/28
4130
基于主成分分析PCA的人脸识别
教程 | 从特征分解到协方差矩阵:详细剖析和实现PCA算法
选自deeplearning4j 机器之心编译 参与:蒋思源 本文先简要明了地介绍了特征向量和其与矩阵的关系,然后再以其为基础解释协方差矩阵和主成分分析法的基本概念,最后我们结合协方差矩阵和主成分分析法实现数据降维。本文不仅仅是从理论上阐述各种重要概念,同时最后还一步步使用 Python 实现数据降维。 首先本文的特征向量是数学概念上的特征向量,并不是指由输入特征值所组成的向量。数学上,线性变换的特征向量是一个非简并的向量,其方向在该变换下不变。该向量在此变换下缩放的比例称为特征值。一个线性变换通常可以由其
机器之心
2018/05/09
4.9K0
教程 | 从特征分解到协方差矩阵:详细剖析和实现PCA算法
【技术分享】主成分分析
  主成分分析是最常用的一种降维方法。我们首先考虑一个问题:对于正交矩阵空间中的样本点,如何用一个超平面对所有样本进行恰当的表达。容易想到,如果这样的超平面存在,那么他大概应该具有下面的性质。
腾讯云TI平台
2020/03/20
1.1K0
机器学习|主成分分析(PCA)
在我们机器学习所训练的数据中,通常会存在着很多的特征,这也就意味着我们所要处理的数据的维度是很大的,由于维度大的数据处理起来非常困难,各种各样的降维算法也就随之产生了。
数据山谷
2020/07/21
1.3K0
机器学习|主成分分析(PCA)
推荐阅读
相关推荐
机器学习(27)【降维】之主成分分析(PCA)详解
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档