理解主成分分析,特征向量和特征值


975

在今天的模式识别课程中,我的教授谈到了PCA,特征向量和特征值。

我了解它的数学原理。如果要求我查找特征值等,则可以像机器一样正确地进行操作。但是我不明白。我没有达到目的。我没有感觉到它。

我坚信以下报价:

除非您可以向祖母解释,否则您并不会真正理解。 - 艾尔伯特爱因斯坦

好吧,我无法向外行或奶奶解释这些概念。

  1. 为什么要使用PCA,特征向量和特征值?什么是需要对这些概念?
  2. 您将如何向外行解释?

95
好问题。我也同意这句话。我相信统计和数学领域的许多人非常聪明,可以很深入地研究他们的工作,但是对他们正在做的工作并不了解。或者他们这样做,但是无法向他人解释。我竭尽全力在这里用简单的英语提供答案,并提出要求计划英语答案的问题。
尼尔·麦圭根

7
这个问题是在7月份的数学网站上提出的,但不是很好,并且没有得到很多答案(鉴于那里的重点不同,这并不奇怪)。 math.stackexchange.com/questions/1146/...
whuber

6
类似于Zuur等人在《分析生态数据》中的解释,他们谈论将您的手投影到高架投影仪上。您不断旋转手,以使墙上的投影看起来与您认为手的外观非常相似。
RomanLuštrik2010年

12
这个问题使我得出了一篇很好的论文,尽管我认为这是一个很好的报价,但它并非来自爱因斯坦。这是一个普遍的误解,更可能的原始报价可能是欧内斯特·卢瑟福(Ernest Rutherford)的那句话。都一样感谢您启动此线程。
gavaletz

23
爱丽丝(Alice Calaprice),《爱因斯坦》的终极报价,普林斯顿UP 2011将该报价标记为许多“可能不是爱因斯坦”之一。参见第482页。
Nick Cox

Answers:


1292

想象一下一个大型家庭晚餐,每个人都开始向您询问有关PCA的问题。首先,您要向您的曾祖母解释。然后给你奶奶 然后给你妈妈;然后给你的配偶;最后,给你的女儿(数学家)。每次下一个人都不是门外汉。对话可能会这样进行。

曾祖母:听说您正在学习“小便看得见”。我不知道那是什么...

您:啊,这只是汇总一些数据的一种方法。你看,我们桌上有一些酒瓶。我们可以通过颜色,强度,年龄等来描述每种葡萄酒(请参阅此处显示的葡萄酒属性的非常直观的视图)。我们可以在酒窖中组成每种葡萄酒的不同特性的完整列表。但是其中许多将测量相关属性,因此将是多余的。如果是这样,我们应该能够总结出具有较少特征的每种葡萄酒!这就是PCA所做的。

祖母:这很有趣!因此,PCA会检查哪些特征是多余的并将其丢弃?

您:好的问题,奶奶!不,PCA不会选择某些特征而放弃其他特征。取而代之的是,它构建了一些特性,从而很好地总结了我们的葡萄酒清单。当然,这些新特性是使用旧特性构建的;例如,可以将新的特征计算为酒龄减去酒的酸度水平或类似的其他组合(我们称其为线性组合)。

实际上,PCA会找到可能的最佳特征,即尽可能概括所有葡萄酒的特征(在所有可能的线性组合中)。这就是为什么它如此有用的原因。

母亲:嗯,这听起来确实不错,但是我不确定我是否理解。当您说这些新的PCA特性“概括”葡萄酒清单时,您实际上是什么意思?

您:我想我可以给这个问题两个不同的答案。第一个答案是,您正在寻找某些葡萄酒之间的葡萄酒特性(特征)有很大差异。确实,想像一下您拥有与大多数葡萄酒相同的特性。这不是很有用,不是吗?葡萄酒有很大的不同,但是您的新特性使它们看起来都一样!这肯定是一个不好的总结。取而代之的是,PCA会寻找能够在不同葡萄酒之间显示出尽可能多差异的属性。

第二个答案是您寻找可以预测或“重建”原始葡萄酒特性的属性。再次,假设您想出了一个与原始特性无关的属性;如果仅使用此新属性,则无法重建原始属性!同样,这将是一个糟糕的总结。因此,PCA寻求能够尽可能重建原始特征的属性。

令人惊讶的是,事实证明这两个目标是相同的,因此PCA可以用一块石头杀死两只鸟。

配偶:但是,亲爱的,PCA的这两个“目标”听起来是如此不同!为什么它们相等?

你:嗯。也许我应该画一点儿(拿一张餐巾纸然后开始乱涂乱画)。让我们选择两个酒的特征,也许是酒的黑暗度和酒精含量-我不知道它们是否相关,但让我们想象一下它们是相关的。以下是不同葡萄酒的散点图:

PCA示例数据

“酒云”中的每个点表示一种特定的葡萄酒。您会看到两个属性(此图上的和)是相关的。可以通过在酒云的中心绘制一条线并将所有点投影到该线上来构建新属性。此新属性将由的线性组合,其中每行对应于和某些特定值。xyw1x+w2yw1w2

现在,请非常仔细地看一下这里-这是不同行的这些投影的外观(红色点是蓝色点的投影):

PCA动画:方差和重建误差

如前所述,PCA将根据“最佳”的两个不同标准找到“最佳”行。首先,沿这条线的值变化应最大。注意线旋转时红点的“传播”(我们称之为“方差”)如何变化;你看到什么时候达到最大值?其次,如果我们从新的两个特征(一个红色的点的位置)重建原始的两个特征(一个蓝色的点的位置),则重建误差将由连接的红线的长度给出。观察红线旋转时这些红线的长度如何变化;可以看到总长度何时达到最小?

如果您盯着动画看一段时间,您会注意到同时达到“最大方差”和“最小误差”,即当线指向我在酒云两边标记的洋红色刻度时。该行对应于PCA将建造的新葡萄酒属性。

顺便说一下,PCA代表“主要成分分析”,而这个新属性称为“第一主要成分”。而且,我们通常不是说“财产”或“特征”,而是说“特征”或“变量”。

女儿:很好,爸爸!我想我可以理解为什么两个目标产生相同的结果:基本上是因为毕达哥拉斯定理,对吗?无论如何,我听说PCA在某种程度上与特征向量和特征值有关。他们在这张照片上在哪里?

您:出色的观察。在数学上,红点的扩散是从酒云中心到每个红点的平均平方距离来衡量的;如您所知,它称为方差。另一方面,将总重建误差测量为相应红线的平均平方长度。但是,由于红线和黑线之间的角度始终为,这两个量的总和等于酒云中心与每个蓝点之间的平均平方距离;这正是毕达哥拉斯定理。当然,该平均距离不取决于黑线的方向,因此方差越大,误差就越小(因为它们的和是恒定的)。这个挥手的论点可以说得很精确(90看到这里)。

顺便说一下,您可以想象黑线是实心杆,每条红线是弹簧。弹簧的能量与它的平方长度成正比(这在物理学上称为胡克定律),因此,杆将定向,以使这些平方距离的总和最小。我模拟了在存在粘性摩擦的情况下的外观:

PCA动画:摆

关于特征向量和特征值。您知道什么是协方差矩阵;在我的示例中,它是由给出的 ×矩阵这意味着变量的方差是,变量的方差是,它们之间的协方差是。由于它是一个方形对称矩阵,因此可以通过选择一个新的正交坐标系(由其特征向量给定)来对角线化(顺便说一下,这称为谱定理)2×2

(1.070.630.630.64).
x1.07y0.640.631.52 0 0 0.191.52); 相应的特征值将位于对角线上。在这个新的坐标系中,协方差矩阵是对角线,看起来像是:这意味着点之间的相关性现在为零。显然,任何投影的方差都将由特征值的加权平均值给出(我仅在此处草绘直觉)。因此,如果我们简单地在第一个坐标轴上进行投影,则将获得最大可能的方差()。因此,第一主分量的方向由协方差矩阵的第一特征向量给出。(更多详细信息在这里。
(1.52000.19),
1.52

您也可以在旋转的图形上看到这一点:有一条灰色的线与黑色的线正交;它们一起形成一个旋转坐标系。尝试注意在此旋转框架中蓝点何时不相关。答案再次是,它恰好在黑线指向洋红色刻度线时发生。现在,我可以告诉您如何找到它们:它们标记了协方差矩阵的第一个特征向量的方向,在这种情况下,它等于。(0.81,0.58)


根据普遍的要求,我分享了Matlab代码来制作上述动画


79
+1漂亮的故事和插图。...then to your mother; then to your wife; finally, to your daughter (who is a mathematician)...我继续:晚饭后-给自己。在这里,您突然卡住了……
ttnphns 2015年

68
我绝对喜欢您为这些答案而制作的插图。
Shadowtalker 2015年

57
我通常只是浏览Cross Validated来阅读有关内容,但我从来没有理由创建一个帐户...主要是因为这里的问题种类超出了我的专业知识,我无法回答任何问题。我通常只在StackOverflow上工作,并且已经在StackExchange网络上工作了大约一年。但是,我只是决定今天才创建一个帐户,主要是为了增补您的帖子。这可能是我曾经阅读过的PCA的最佳阐述,而且我已经阅读了很多。感谢您的精彩文章-出色的讲故事,图形,而且非常易于阅读!+1
rayryeng

14
请注意:我的答案目前有100票,JDLong的有220票。如果我们假设持续增长,那么我的每年有100票,他每年有40票。如果从2014年1月通过100次upvotes [获得金牌]开始计算,则为55 / year。这意味着我将在2.5
amoeba

3
自己注意续:我必须更新我的估计。一个月后,这个答案得到18票赞成,而JDLong的5票。这表明我可能会在不到一年的时间内赶上来。有趣的是,每月5个非常接近我上面对55 /年的上述估计,但每月18个是100 /年以上的两倍多。由于我的答案没有改变,似乎排在第二位加快了投票速度(可能是由于可见度提高了)。
amoeba

376

这份手稿由林赛·史密斯我“主成分分析的教程”真的帮了我神交PCA。我认为向您的祖母解释仍然太复杂,但这还不错。您应该跳过计算本征等的前几位。跳至第三章的示例,并查看这些图。

我有一些示例,其中我研究了一些玩具示例,因此我可以理解PCA与OLS线性回归。我会尝试将其挖掘出来并发布。

编辑: 您并没有真正询问过普通最小二乘(OLS)和PCA之间的区别,但是由于我挖出了笔记,因此在博客上发表了有关它的文章。非常短的版本是y〜x的OLS,它使垂直于独立轴的误差最小化(黄色线是两个误差的示例):

替代文字

如果要回归x〜y(与第一个示例中的y〜x相反),它将使误差最小化,如下所示:

替代文字

PCA有效地使与模型本身正交的误差最小化,如下所示:

替代文字

就像其他人所说的那样,更重要的是,在您拥有大量独立变量的情况下,PCA可以帮助您确定这些变量的线性组合最重要。上面的示例仅在一个非常简单的情况下帮助可视化第一个主成分的外观。

在我的博客文章中,我具有用于创建上述图形和计算第一个主成分的R代码。建立PCA直觉可能值得一试。在编写可复制内容的代码之前,我往往并不真正拥有某些内容。 


9
很好地呼吁Lindsay I Smith手稿-今天就读;很有帮助。
Stedy 2010年

7
如果PCA优化了点到拟合线的正交距离,那么PCA是否等于总最小二乘?
Marcin

3
@Marcin-这是正确的。您可以重新词组PCA为寻找最佳的秩估计(1 p原)p变量(XĴm1mpp),其中的目标函数 Σ Ñ = 1个 Σ p Ĵ = 1X Ĵ - XĴ2。选择PC数量等同于选择预测等级。x^iji=1,,nj=1,,pi=1nj=1p(xijx^ij)2
概率

3
Smith中的一个小数学错误:“矩阵的所有特征向量都是垂直的……无论有多少维,”仅适用于对称矩阵,这里是相隔45度的对称矩阵。Smith较早地注意到了协方差矩阵的对称性,但没有暗示-对称性确保了n正交的特征向量。实际上,并非所有的实n x n矩阵甚至都具有实特征值(例如{{0,1},{-1,0}}),而在那些实矩阵中,并非都具有n独立的特征向量(例如{{1,1},{0 ,1}})!对称很重要!
银鱼

8
作为教授特征向量的数学家,在阅读此Lindsay Smith手稿时,我不得不畏缩。“ ...结果向量是原始...的整数倍”-提到整数的意义是什么?矩阵A的特征向量是任何向量X,使得AX是X的倍数。不是整数倍,而是倍数!非整数倍也可以!Jeez为什么在没有地方的地方造成不必要的混乱?
Dmitri Zaitsev 2015年

143

让我们先做(2)。PCA使椭圆适合数据。椭球是扭曲的球形形状的多维概括,例如雪茄,薄煎饼和鸡蛋。所有这些都通过其主要(半)轴的方向和长度(如雪茄或鸡蛋的轴或煎饼的平面)进行了很好的描述。无论如何旋转椭球,特征向量都指向那些主要方向,而特征值则为您提供长度。最小的特征值对应于变化最小的最薄方向,因此忽略它们(将它们折叠成平整)会丢失相对较少的信息:这就是PCA。

(1)除了简化(上面),我们还需要精巧的描述,可视化和洞察力。能够减少尺寸是一个很好的事情:它可以更容易地描述数据,如果我们很幸运,以减少他们三个或更少,让我们画一幅画。有时,我们甚至可以找到有用的方法来解释图片中由坐标表示的数据组合,从而可以深入了解变量的联合行为。


该图显示了一些每个包含个点的云,以及包含每个云的50%的椭球和与主方向对齐的轴。在第一行中,云基本上具有一个主要成分,占所有变化的95%:这些是雪茄形状。在第二行中,云基本上具有两个主要成分,一个约为另一个大小的两倍,合在一起构成所有差异的95%:这些是煎饼形状。在第三行中,所有三个主要成分都相当大:这些是蛋形。200

图

任何不表现出簇,卷须或离群值的“连贯” 3D点云都将是其中之一。这些图之一可将所有 3D点云如果并非所有点都重合)描述为识别进一步聚类或图案化的初始出发点

即使很难或不可能可视化这些尺寸,从您构想的构想中得出的直觉也可以应用于更高的尺寸。


2
此外,当您具有(近)相等的半轴时(即,椭球体具有(近)圆形切片),它表示与那些轴相对应的两个数据具有(近)相关性;人们可以谈论椭圆的主轴,但是圆只有一个半径。:)
JM不是统计学家

6
在这里,JM首先,我会更加谨慎,只是为了澄清一下,您必须用“几乎独立”来表示“几乎独立”。对于多正态变量,这将是正确的,但在许多情况下,PCA是使用明显非正态的数据执行的。确实,遵循某些PCA计算的聚类分析可以被视为评估强烈非正态形式的一种方法。从数学上讲,圆确实有主轴,但并不是唯一确定的:您可以选择任何正交的半径对作为主轴。
ub

1
是的,很抱歉,我想“圆的主轴是不确定的”是放置它的更好方法。
JM不是统计学家2010年

2
很好的解释!试图更好地理解它。.在PCA数学中,哪里可以看到“ PCA使椭圆适合数据”?
科彻德

4
@Kochede椭圆体是二次形式的轮廓。协方差矩阵是二次形式。PCA标识其轴及其长度。
Whuber

106

嗯,这是对PCA的完全非数学的理解...

想象一下您刚刚开了一家苹果酒商店。您有50种苹果酒,您想弄清楚如何将它们分配到架子上,以便将口味相似的苹果酒放在同一架子上。苹果酒中有很多不同的口味和质地-甜度,酸度,苦味,酵母味,果味,澄清度,起泡等。因此,您需要做的是将瓶子归类为两个问题:

1)识别苹果酒组最重要的素质是什么?例如,与基于果味分类相比,基于甜味的分类是否更容易将苹果酒分为相似的口味组?

2)是否可以通过合并其中一些变量来减少变量列表?例如,实际上是否存在一个由“酵母性,清晰度和起泡性”组合而成的变量,并且该变量确实可以很好地进行品种分类?

这实质上是PCA所做的。主成分是变量,可以有效地解释数据集中的变化-在这种情况下,可以有效地区分组。每个主成分是您原始的解释变量之一,或者是一些原始解释性变量的组合。


4
特征向量和特征值呢?
Ηλίας

3
好的:与每个主要成分相关的特征值可以告诉您它解释的数据集有多少变化(在我的示例中,它是如何清楚地将瓶子分成几组的)。它们通常表示为数据集中总变化的百分比。至于特征向量,好吧,就像爪子说的那样,我就像机器一样跟随分析的输出;)在我的脑海中,它们与如何将文斯的移动设备旋转到“最佳”方向有关,但这可能不是正确思考它们的方法。
Freya Harrison

17
特征向量只是原始变量的线性组合(在简单或旋转的因子空间中)。他们描述了变量如何“贡献”到每个因子轴。基本上,将PCA视为构造新轴的方法,该轴指向特征值表示的(原始变量空间中)最大方差方向,以及变量贡献如何在此新空间中加权或线性转换。
chl

这个问题的协方差矩阵是什么样的?它告诉我们有关变量(甜味,酸味,苦味,酵母味,果味,澄清度,起泡等)的信息吗?
JustCurious

1
我不知道统计学家和酒精饮料的含义是什么,但“ 威士忌分类 ”恰恰适合苏格兰威士忌……
nekomatic

96

我用“外行的术语”来回答,说PCA旨在使直线适合数据点(每个人都知道直线是什么)。我们称这些直线为“主要成分”。主成分与变量一样多。第一个主成分是您可以适合数据的最佳直线。第二个主要成分是您可以适合第一个主要成分的误差的最佳直线。第三个主成分是最适合您适应第一个和第二个主成分等的误差的直线。

如果有人问您“最佳”或“错误”是什么意思,那么这表明您不是“外行”,因此可以深入了解更多技术细节,例如垂直错误,不知道错误在哪里x或y方向,大于2或3个维度等。此外,如果避免参考OLS回归(“外行”可能也不理解),则说明会更容易。

特征向量和特征值本身并不是必需的概念,而是恰好是已经存在的数学概念。当您解决PCA的数学问题时,它最终等同于找到协方差矩阵的特征值和特征向量。


8
+1,这的确是“外行人的话”,我知道如果您愿意的话,可以非常严格地得出它!
gung

2
我会说迄今为止最好的答案。而且我经常使用PCA。
a11msp 2014年

2
哇-这确实是一个很棒而简单的解释!谢谢!
尼克,

52

我可以给您我自己的PCA解释/证明,我认为它很简单,精巧,除了线性代数的基本知识之外,不需要任何其他信息。出来的时间很长,因为我想用简单易用的语言编写。

Mnn

βββi=1Mxiμ20 X ' = X - μ Σ 中号= 1 | | X ' | | 2μ0xi=xiμi=1Mxi2

现在选择行。对于某些向量,我们可以将任何线描述为满足等式的点集。请注意,如果我们将线移动到与正交的某个矢量,则线上的所有投影也将移动,因此投影的均值将移动,因此投影的方差将保持不变。这意味着我们可以使线平行于自身移动,而不会更改这条线上的投影方差。再次为方便起见,让我们将自己限制为仅穿过零点的线(这意味着用描述的线)。v 瓦特γ v γ γ X = α vx=αv+wv,wγvγγx=αv

好吧,现在假设我们有一个向量来描述一条线的方向,这是我们搜索的线的可能候选者。我们需要计算线上的投影的方差。我们将需要的是投影点及其均值。从线性代数我们知道,在这种简单情况下,在上的投影为。从现在开始,让我们将自己限制为仅单位向量。这意味着我们可以简单地将点在上的投影长度写为。vαvxiαvxi,v/v2vxivxi,v

在先前的一些回答中,有人说PCA会将与所选直线的距离的平方和最小化。现在我们可以看到它是真的,因为投影的平方和与距所选线的距离的平方和等于从点的距离的平方和。通过最大化投影的平方和,我们最小化了距离的平方和,反之亦然,但这只是一个深思熟虑的题外话,回到现在的证明。0

至于投影的均值,让我们观察到是空间的某些正交基础的一部分,并且如果我们在该基础上的每个向量上投影数据点,它们的总和将被抵消(就像那样,因为在来自基础的向量就像在新的正交基础上写入数据点一样。因此,向量上所有投影的总和(我们称之和为)和其他基础上其他向量的投影之和(我们称其为)为0,因为它是数据点的均值。但是与正交!这意味着。vvSvSoSvSoSo=Sv=0

因此,我们的预测平均值为。0好吧,这很方便,因为这意味着方差就是​​投影长度的平方和,或者用符号

i=1M(xiv)2=i=1MvTxiTxiv=vT(i=1MxiTxi)v.

好吧,突然之间出现了协方差矩阵。让我们简单地用表示它。这意味着我们现在正在寻找对于某些半正定矩阵最大化的单位矢量。XvvTXvX

现在,让我们采用矩阵的特征向量和特征值,分别用和表示它们,使得。如果值不重复,则特征向量形成正交基础。如果是这样,我们选择特征向量的方式应使其形成正交基础。Xe1,e2,,enλ1,,λnλ1λ2,λ3λ

现在让我们为特征向量计算。我们有vTXvei

eiTXei=eiT(λiei)=λi(ei2)2=λi.

很好,这给我们表示。现在让我们取一个任意向量。由于特征向量形成正交基,我们可以写成,并且我们有。让我们表示。λ1e1vv=i=1neiv,eii=1nv,ei2=1βi=v,ei

现在让我们计算。我们将重写为的线性组合,并得到:vTXvvei

(i=1nβiei)TX(i=1nβiei)=(i=1nβiei)(i=1nλiβiei)=i=1nλi(βi)2(ei2)2.

最后一个方程来自特征向量选择成对正交的事实,因此它们的点积为零。现在,由于所有特征向量也具有单位长度,因此我们可以写出,其中均为正,并且总计为。vTXv=i=1nλiβi2βi21

这意味着投影的方差是特征值的加权平均值。当然,它总是小于最大特征值,这就是为什么它应该是我们选择的第一个PCA向量的原因。

现在假设我们想要另一个向量。我们应该从与已经选择的空间正交的空间中选择它,这意味着子空间。通过类推,我们得出结论,投影的最佳向量是。等等等等...lin(e2,e3,,en)e2

顺便说一下,现在应该很清楚,为什么保留的方差可以用。i=1kλi/i=1nλi

我们还应该证明对向量的贪婪选择。当我们想选择要投影的矢量时,最好先选择最佳矢量,然后再从剩余的物体中选择最佳矢量,这并不是最好的主意,依此类推。我想指出,在这种情况下,这是合理的,没有任何区别。让我们用表示我们要投影到的向量。另外,我们假设向量是成对正交的。众所周知,这些向量上投影的总方差可以表示为其中kkv1,,vk

j=1ki=1nλiβij2=i=1nλiγi
γi=j=1kβij2.

现在,让我们以某种正交的方式编写,其中包括。让我们将其余基础表示为。我们可以看到。因为,我们有,因此对于所有。eiv1,,vku1,,unkei=j=1kβijvj+j=1nkθjei,ujei2=1j=1kβij2+j=1nkθj2=1γi1i

现在我们有一个仅与一个向量相似的情况,我们现在知道投影的总方差为其中和。这是另一个加权平均值,并且肯定不超过,它对应于投影在对应于最大特征值的特征向量上。i=1nλiγiγi1i=1nγi=ki=1kλik


2
+1非常好的答案!尚未完全阅读,但是您的答案就是我一直在寻找的那种。解释了所有步骤=)
jjepsuomi

9
给我看一个懂基本线性代数的Layman,然后给你看一个数学本科生。
概率

从线性代数我们知道,在这种简单情况下,在上的投影为xiαvxi,v/v2(第5段)。不应该是?换句话说,标量投影?xi,v/v
Antoni Parellada

1
我认为这是迄今为止我所见过的PCA的最好解释。谢谢。
Nimitz14

1
这是我最喜欢的解释,它也说明了特征向量为何使方差最大化。
罗姆韦尔

47

好吧,我来试试看。几个月前,我翻阅了大量文献,找到了我可以向非统计学家解释的直观解释。我发现使用拉格朗日乘数的推导最直观。

假设我们有高维数据-假设对昆虫进行了30次测量。这些昆虫在某些维度上具有不同的基因型和略有不同的物理特征,但是由于具有如此高的维度数据,很难分辨哪些昆虫属于哪一类。

PCA是一种通过以下方法减小尺寸的技术:

  1. 采用原始变量的线性组合。
  2. 每个线性组合都可以解释数据中的最大差异。
  3. 每个线性组合彼此都不相关

或者,用数学术语:

  1. 对于(第j个分量的线性组合)Yj=ajx
  2. 对于,(第一部分解释了更多的变化)k>jV(Yk)<V(Yj)
  3. akaj=0(正交)

寻找满足这些约束的线性组合会导致我们获得特征值。为什么?

我建议您查阅《多变量数据分析简介》一书中的完整推导(第50页),但基本思想是限制了连续优化问题(最大化方差),使得系数a的a'a = 1(以防止出现这种情况)。当方差可以是无限的时)并受约束以确保系数正交。

这导致使用拉格朗日乘数进行优化,从而揭示了为什么使用特征值。我懒得打出来(抱歉!),但是从这一点来看,这个PDF很好地通过了证明。

我永远不会尝试向祖母解释这一点,但是如果我不得不大谈降维技术,那我将指向这个琐碎的投影示例(不是PCA)。假设您的Calder手机非常复杂。3维空间中的某些点彼此靠近,而其他的则不是。如果我们将此移动电话悬吊在天花板上,并从一个角度照射光,那么我们会投影到较低尺寸的平面(二维墙)上。现在,如果此移动设备主要在一个方向上较宽,而在另一个方向上较窄,则可以旋转它以得到有用性不同的投影。直观地讲,投影在墙上的一维皮包骨头形状的用处不大,所有阴影都重叠并且没有给我们太多信息。但是,如果我们旋转它,使光线照在宽广的一侧,我们可以更好地了解降维数据-点分布得更多。这通常是我们想要的。我想我祖母可以理解:-)


6
那是非常普通的人;-)

2
这有点数学,但是了解某事的最好方法是派生它。
文斯2010年

29
您有一个受过良好教育的祖母:-)。
ub

7
我喜欢3D结构上发出的光的解释
Neil McGuigan

(+1)都是不错的答案,但这也是我要给出的答案。
Digio '16

37

尝试非技术性...想象您有一个多元数据,一个多维的点云。当您计算其中的协方差矩阵时,(a)将云居中,即将原点作为多维平均值,则坐标系轴现在在云的中心交叉,(b)加密有关云的形状的信息以及如何通过方差-协方差条目在空间中定向。因此,有关整个数据形状的大多数重要信息都存储在协方差矩阵中。

然后,对该矩阵进行特征分解,并获得特征值列表和相应的特征向量数量。现在,第一个主成分是新的潜在变量,可以将其显示为穿过原点并沿云的最大方差(厚度)方向定向的轴。沿该轴的方差,即轴上所有点的坐标的方差第一个特征值,以及在空间中相对于原始轴(变量)所引用的轴的方向由第一个特征向量定义:其项是它与那些原始轴之间的余弦值。第一成分上的数据点的上述坐标为第一主成分值或成分分数。它们被计算为(居中的)数据矩阵与特征向量的乘积。

“之后”第一场比赛 组件被测量后,可以说是从云中“删除”了,并考虑了所有变化,云的维数下降了一个。接下来,用第二个特征值和第二个特征向量-第二个pr重复一切。组件被记录,然后“删除”。等等。

因此,再次:特征向量是主成分的方向余弦,而特征值是主成分的大小(方差)。所有特征值的总和等于方差-协方差矩阵对角线上的方差之和。如果将存储在特征值中的“原始”信息转移到特征向量上,然后再将其添加到存储在其中的“原始”信息中,则会得到所谓的主成分加载;这些负载(因为它们同时包含两种类型的信息)是原始变量和主成分之间的协方差。

稍后PS我想特别强调一下本征向量载荷之间的术语差异。许多人和某些软件包(包括其中的某些软件包R)轻率地互换使用这两个术语。这是一个不好的做法,因为对象及其含义是不同的。特征向量是方向余弦,即PCA等于正交“旋转”的角度。载荷是特征向量,其中填充了有关旋转数据的变异性或大小的信息。载荷是组件和变量之间的关联系数,它们可以直接与变量之间计算的关联系数相比较-协方差,相关性或其他标量积,您将基于该PCA。特征向量和载荷都相似,因为它们在通过分量预测变量时提供回归系数(反之亦然!1)。特征向量是通过原始成分分数预测变量的系数。负荷是通过缩放(标准化)的组件评分来预测变量的系数(难怪:负荷已经积累了有关变异性的信息,因此,必须放弃使用的组件)。不混合特征向量和载荷的另一个原因是,除PCA之外,还有其他降维技术(例如某些形式的因子分析)直接绕过特征向量来计算载荷。特征向量是特征分解或奇异值分解的乘积。某些形式的因子分析不使用这些分解,而是以其他方式得出负荷。最后,它是载荷而不是特征向量,通过它们可以解释分量或因数(如果需要解释它们)。加载是将组件贡献到变量中:在PCA(或因子分析)中,组件/因子将自身加载到变量中,反之亦然。在全面的PCA结果中,应报告特征向量和载荷,如图所示。在这里这里

另请参见载荷与特征向量。


1由于PCA中的特征向量矩阵是正交的,并且其逆矩阵是其转置的,所以可以说,这些相同的特征向量也是通过变量反向预测分量的系数。但是,对于加载却不是这样。


@amoeba,我不坚持,您可以使用任何惯用的术语。我清楚地说明了为什么我认为术语“载荷”和“特征向量”最好保持分开。我遵循经典的传统,例如在哈曼。如果我正确地记住了传统,那么就进行现代因素分析。
ttnphns 2014年

(续)无论如何,您自己都知道“负载”一词尽管确实非常可疑,但在其他多变量分析(例如判别分析)中却没有与“特征向量”混淆。正如我所说,在PCA中,负载1)再次包含有关变化幅度的信息;2)是协方差/相关性,因此用于解释。特征向量值-不是。
ttnphns 2014年

2
+1我一直在阅读您关于PCA和其他相关问题的信息,并且学到了很多东西。
Antoni Parellada

29

好吧,一个完全非数学的答案:

如果您在一堆主题上有一堆变量,并且想将它们减少到相同主题上的变量变少,同时又损失了尽可能少的信息,那么PCA就是一种做到这一点的工具。

尽管它们经常给出相似的结果,但它与因子分析不同,因为FA试图从大量观察到的与潜在变量相关的观测变量中恢复少量潜在变量。


嘿,彼得!很高兴在这里见到你。这是一个非常好的,简单的,没有数学答案的答案。
JD Long

3
+1是提及FA,似乎没有人讨论过,有些人的解释似乎也混为一谈。
gung

PCA和FA的目标似乎没有区别-两者都旨在旋转,因此您可以看到最重要的因素(潜矢量,本征维数或奇异矢量等)。但是FA似乎不是算法,而是一系列相关技术(彼此之间以及SVD和PCA),其目标相应地定义不明确(也就是说,多样性且相互矛盾,因此不同的变体“优化”了不同的事物)。
David MW Powers 2014年

说PCA是进行因子分析的许多可能方法之一是正确的吗?
abalter

众所周知,这方面的术语不一致。
彼得·弗洛姆

29

在二维中进行数学运算是最简单的。

每个矩阵都对应一个线性变换。可以通过在平面上拍摄一个令人难忘的图形并查看该图形如何被线性变换变形来可视化线性变换:

线性变换 (图片:弗拉尼根和卡兹丹

  • 特征向量是保持不变的向量。它们在转换后指向的方向与以前相同。蒙娜丽莎特征向量(蓝色保持不变,因此方向是的特征向量。)shear
  • 特征值是指保持不变的向量增长或缩小的程度。(蓝色保持相同大小,因此特征值将为)×1
  • PCA旋转轴以更好地“对齐”数据。(来源:weigend.com PCA使用协方差矩阵的特征向量来确定如何旋转数据。由于旋转是一种线性变换,因此您的新尺寸将是旧尺寸的总和,例如。PCA足球
    1=23%[1]+46%[2]+39%[3]

处理真实数据的人们对特征向量和线性变换感兴趣的原因是,在不同的上下文中,“线性”()可以涵盖非常有趣的内容。例如,请考虑一下,如果给和赋予了新的含义,或者和来自某个有趣的字段,或者和来自某个有趣的空间,则该属性的含义是什么。例如f(ax+by)=af(x)+bf(y)+abxy

面孔

PCA本身就是另一个例子,这是统计学家最熟悉的例子。其他一些答案(例如Freya的答案)给出了PCA的实际应用

我感到惊讶的是,像“旋转”这样简单的事情在不同领域可以做很多事情,例如为推荐系统排列产品解释了地缘政治冲突。但是,如果您考虑物理问题,那么选择一个更好的基础(例如使轴成为运动方向而不是会将难以理解的方程式变成简单的方程式。similar how?x42.8%[x]57.2%[y]


2
实际上,旋转是线性的是一种巧合,因此是一种描述非几何数据发生情况的便捷方式。巧合涉及笛卡尔/欧几里得空间和中心极限定理/高斯的二次性质。就是 sigma像正交维度一样平方相加,这就是我们的ND旋转/正交术语起源于2D和3D空间的类比。
David MW Powers

@DavidMWPowers有趣。我从线性代数的角度考虑旋转。
同构

27

在此主题中JD Long发表出色文章之后,我寻找了一个简单的示例,以及生成PCA然后返回原始数据所必需的R代码。它给了我一些第一手的几何直觉,我想分享我所得到的。数据集和代码可以直接复制并粘贴到R形式的Github中

我使用的数据集,我在网上找到的半导体这里,我修剪它只是两个维度- “原子序数”和“熔点” -以方便绘图。


需要说明的是,该思想仅是计算过程的例证:PCA用于将两个以上的变量简化为几个派生的主成分,或者在具有多个特征的情况下也可以识别共线性。因此,在两个变量的情况下,它不会找到太多应用,也不需要像@amoeba所指出的那样计算相关矩阵的特征向量。


此外,我将观测值从44缩短到15,以简化跟踪单个点的任务。最终结果是一个骨架数据框(dat1):

compounds   atomic.no      melting.point
AIN         10             498.0
AIP         14             625.0
AIAs        23             1011.5
...         ...            ... 

“化合物”列表示半导体的化学组成,并起着行名的作用。

可以将其复制如下(准备在R控制台上复制和粘贴):

dat              <- read.csv(url("http://rinterested.github.io/datasets/semiconductors"))
colnames(dat)[2] <- "atomic.no"
dat1             <- subset(dat[1:15,1:3])
row.names(dat1)  <- dat1$compounds
dat1             <- dat1[,-1]

然后对数据进行缩放:

X <- apply(dat1, 2, function(x) (x - mean(x)) / sd(x))
# This centers data points around the mean and standardizes by dividing by SD.
# It is the equivalent to `X <- scale(dat1, center = T, scale = T)`  

线性代数的步骤如下:

C <- cov(X)                                           # Covariance matrix (centered data)

[at_nomelt_pat_no10.296melt_p0.2961]

相关函数cor(dat1)在非定标数据上的输出与在定标数据上的函数相同cov(X)

lambda        <- eigen(C)$values                      # Eigenvalues
lambda_matrix <- diag(2)*eigen(C)$values              # Eigenvalues matrix

[λPC1λPC21.296422000.7035783]

e_vectors     <- eigen(C)$vectors                     # Eigenvectors

12[PC1PC21111]

由于第一个特征向量最初返回为我们选择将其更改为以使其通过以下方式与内置公式保持一致:[0.7,0.7][0.7,0.7]

e_vectors[,1] = - e_vectors[,1]; colnames(e_vectors) <- c("PC1","PC2")

所得特征值是和。在较少的简约条件下,此结果将有助于确定要包含的特征向量(最大特征值)。例如,第一特征值的相对贡献是,这意味着它占的数据可变性。第二个特征向量方向的变异性是。这通常显示在描绘特征值值的碎石图上:1.29642170.703578364.8%eigen(C)$values[1]/sum(eigen(C)$values) * 10065%35.2%

在此处输入图片说明

在此玩具数据集示例较小的情况下,我们将同时包含两个特征向量,要理解排除其中一个特征向量会导致尺寸降低-PCA的思想。

分数矩阵确定为缩放数据X与特征向量矩阵(或“旋转”)的矩阵相乘:

score_matrix <-  X %*% e_vectors    
# Identical to the often found operation: t(t(e_vectors) %*% t(X))

该概念需要对中心数据(在这种情况下为缩放比例)的每个条目(在这种情况下,是行/主题/观察/超导体)进行线性组合,并按每个特征向量加权,以便在分数矩阵,我们将从数据(整个X)的每个变量(列)中找到一个贡献,但只有相应的特征向量会参与计算(即第一个特征向量将有助于(主成分1)和有助于,如下所示: PC[0.7,0.7]T[ 0.7 0.7 ] T PCPC1[0.7,0.7]TPC2

在此处输入图片说明

因此,每个特征向量将不同地影响每个变量,这将反映在PCA的“负载”中。在我们的情况下,第二个特征向量的第二个分量中的负号将更改产生PC2的线性组合中的熔点值的符号,而第一个特征向量的效果将始终为正: [0.7,0.7]

在此处输入图片说明

特征向量缩放为:1

> apply(e_vectors, 2, function(x) sum(x^2))
PC1 PC2 
  1   1 

而(loading)是按特征值缩放的特征向量(尽管下面显示的内置R函数中的术语令人困惑)。因此,载荷可以计算为:

> e_vectors          %*% lambda_matrix
          [,1]      [,2]
[1,] 0.9167086  0.497505
[2,] 0.9167086 -0.497505

> prcomp(X)$rotation %*% diag(princomp(covmat = C)$sd^2)
                   [,1]      [,2]
atomic.no     0.9167086  0.497505
melting.point 0.9167086 -0.497505

有趣的是,旋转后的数据云(分数图)沿每个分量(PC)的方差等于特征值:

> apply(score_matrix, 2, function(x) var(x))
       PC1        PC2 
53829.7896   110.8414 
> lambda
[1] 53829.7896   110.8414

利用内置函数,可以复制结果:

# For the SCORE MATRIX:
  prcomp(X)$x
# or...
  princomp(X)$scores # The signs of the PC 1 column will be reversed.

# and for EIGENVECTOR MATRIX:
  prcomp(X)$rotation
# or...
  princomp(X)$loadings

# and for EIGENVALUES:
  prcomp(X)$sdev^2
# or...
  princomp(covmat = C)$sd^2

或者,可以应用奇异值分解()方法来手动计算PCA。实际上,这是中使用的方法。这些步骤可以解释为:UΣVTprcomp()

svd_scaled_dat <-svd(scale(dat1))
eigen_vectors <- svd_scaled_dat$v
eigen_values <- (svd_scaled_dat$d/sqrt(nrow(dat1) - 1))^2
scores<-scale(dat1) %*% eigen_vectors

结果显示如下,首先显示从各个点到第一个特征向量的距离,在第二个图上显示到第二个特征向量的正交距离:

在此处输入图片说明

相反,如果我们绘制分数矩阵(PC1和PC2)的值-不再是“ melting.point”和“ atomic.no”,而是实际上以特征向量为基础的点坐标的基础发生了变化,那么这些距离将是保留,但自然会垂直于xy轴:

在此处输入图片说明

现在的诀窍是恢复原始数据。这些点已通过特征向量通过简单的矩阵乘法进行了转换。现在,通过将特征向量矩阵乘以数据点的位置,从而使数据旋转回去。例如,注意左上象限中粉红色点“ GaN”的变化(下图中左图的黑色圆圈),返回左下象限中的初始位置(下图右图的黑色圆圈)。

现在,我们终于将原始数据还原到此“反旋转”矩阵中:

在此处输入图片说明

除了在PCA中更改数据旋转坐标之外,还必须对结果进行解释,并且此过程趋向于涉及biplot,在上相对于新的特征向量坐标绘制数据点,并且现在将原始变量叠加为向量。有趣的是,请注意上方第二排旋转图中各图之间的点位置相等(“ xy轴分数=特征向量”)(在随后的图的左侧),以及biplot(对):

在此处输入图片说明

原始变量作为红色箭头的叠加提供给解释的路径PC1如在方向(或具有正的相关性)的矢量与两个atomic nomelting point; 和的PC2组成部分,沿着,atomic no但与呈负相关 melting point,与特征向量的值一致:

PCA$rotation
                    PC1        PC2
atomic.no     0.7071068  0.7071068
melting.point 0.7071068 -0.7071068

维克托·鲍威尔(Victor Powell)撰写的该交互式教程可提供有关修改数据云时本征向量变化的即时反馈。


1
+1,尤其是动画!但是请记住,两个变量的相关矩阵上的PCA有点特殊情况,因为两个变量的所有相关矩阵都具有相同的特征向量:其中一个始终为[0.7 0.7](0.7为1 / sqrt (2))。对于协方差矩阵或更高维度的相关矩阵,情况并非如此。
amoeba '02

14

从经常使用PCA的人(也试图向一些人解释),这是我自己神经科学领域的一个例子。

当我们从一个人的头皮上进行记录时,我们使用64个电极进行记录。因此,实际上,我们在列表中有64个数字,代表头皮释放的电压。现在,由于我们以微秒的精度进行记录,因此,如果我们进行了1个小时的实验(通常是4个小时),则可以得出1e6 * 60 ^ 2 == 3,600,000,000个在每个电极上记录电压的时间点,因此现在具有3,600,000,000 x 64矩阵 由于PCA的主要假设是变量是相关的,因此将这种荒谬的数据量减少到易于处理的数量是一种很棒的技术。正如已经多次说过的,特征值代表变量(列)解释的方差量。在这种情况下,特征值表示特定电极在特定时间点的电压变化。所以现在我们可以说,“哦,好电极x在这个时间点y上,我们应该集中精力进行进一步的分析,因为这是变化最大的地方。”希望这会有所帮助。喜欢那些回归图!


12

我可能不好回答这个问题,因为我是个众所周知的祖母,他向我解释了这个概念,而且不多,但是这里有:

假设您有一个人口。很大一部分人口的心脏病发作已经死亡。您正在尝试找出导致心脏病发作的原因。

您有两个数据:身高和体重。

现在,很明显体重与心脏病发作之间存在某种关系,但是这种关系并不是很牢固。有些人的心脏病很重,但有些人却没有。

现在,您进行了一次PCA,它告诉您体重除以身高(“体重”)比体重或身高更可能是心脏病发作的预测指标,因为事实上,“真实”是引起心脏病的体重。

本质上,您之所以要进行PCA,是因为您要衡量一堆东西,并且您真的不知道这些东西是否真的是主要成分,或者是否有未测量的更深层的底层成分。

[如果完全不符合要求,请随时进行编辑。我真的不比这更深入地理解这个概念。


1
欢迎来到统计网站@Joel!如果有机会,您可能还会对我们建议的分布式StackExchange数据分析项目stats.stackexchange.com/questions/2512/…的讨论做出贡献。
Shane 2010年

9
很好的例子,但从技术上讲PCA找不到体重解释,因为它只能找到线性解释,即原始变量的加权和。但是,如果记录输入变量的日志,则该比率将有所不同,并且如果解释正确,PCA将能够找到它。
David MW Powers 2014年

10

这是给奶奶的:

在我们镇上,街道南北走动,东西向,甚至西北和东南走,从东北到西南。有一天,一个人测量了所有街道上的所有流量,他发现流量最大的是对角线,从西北到东南,第二大流量垂直于该流量,从东北到西南,其余的流量都很小。因此,他画了一个大方块,并从左到右画了一条大线,并说那是NW到SE,然后从中间垂直上下绘制另一条线。他说,这是交通拥挤的第二大方向(从东北到西南)。其余的很小,因此可以忽略。

左,右线是第一个特征向量,上下线是第二个特征向量。左右行驶的汽车总数是第一个特征值,上下行驶的汽车总数是第二个特征值。


1
这个类比在审查中似乎破裂了。如果最大和第二大交通方向不正交怎么办?在这种情况下,您的类比如何帮助我们理解PCA?
Whuber

我猜奶奶明白正交是什么意思?是的,那里有些缺陷,但这是一个开始。我认为在这里有这么多答案真是太好了。
BajaBob

2
不管“祖母”是否理解某个职位,都需要合理明确和正确。您的类比似乎无法实现这些目标。那可能是因为我不理解类推:我无法将其连接到PCA是或做的事情。也许您可以阐明类比的工作原理,以免其他读者变得像我一样神秘。
ub

它们不是正交的事实意味着您需要ICA或FA而不是PCA。如果奶奶正斜着角看伤残的船时正在看《星际迷航》(是的那一代),PCA倾向于恢复与比例尺和视线相关的参考平面(银河平面或船轴)。
David MW Powers

-1。我同意@whuber的说法,这个比喻行不通。这里应该是什么数据,这些“特征向量”是什么协方差矩阵的?我一点都不明白。
变形虫

10

这个答案给出了一种直观而不是数学的解释:

PCA将为您提供高维点云内的一组正交向量。向量的顺序由将所有点投影到向量之后传送的信息确定。

换句话说:在将所有点投影到向量上之后,第一个主成分向量将最多告诉您点云。这当然是一种直觉的解释。

看一下这个椭圆体(3D模型的跟随链接)

在此处输入图片说明

如果必须选择一个形成一维子空间的向量,椭圆点的点将投影到该向量上。您会选择哪一个,因为它可以传达有关3维原始集的最多信息?

我猜沿最长轴的红色。这实际上是计算出的第一主成分!下一个-我会沿着下一个最长的轴选择蓝色。

通常,您需要将一组点从高维空间投影到二维平面或三维空间中

在此处输入图片说明


http://www.joyofdata.de/blog/illustration-of-principal-component-analysis-pca/


10

尽管提供了许多示例来提供对PCA的直观了解,但这一事实几乎一开始就使您更加难以掌握,至少对我而言。

“来自不同学科的所有这些不同示例在PCA方面有什么共同点?”

直觉上帮助我的是几个数学上的相似之处,因为显然数学对您来说很容易,尽管这无助于您的祖母解释...

考虑正则化问题,尝试获取

||XBY||=0

或者用英语将您的数据分解为另外两个矩阵,这些矩阵将以某种方式阐明这些数据吗?如果这两个矩阵工作良好,则它们与之间的误差应该不会太大。YY

出于其他人所说的所有原因,PCA为您提供了有用的分解因子。它将您拥有的数据矩阵分解为另外两个有用的矩阵。在这种情况下,将是一个矩阵,其中列是您保留的前 PC,而是一个矩阵,为您提供了使用列重构矩阵列的方法。 是的前行,所有转置。对角线上的特征值YYXkBYXBkSVS从根本上衡量哪些PC最重要。这就是数学公式明确告诉您哪些PC最重要的方式:它们各自由其特征值加权。然后,矩阵告诉PC如何组合。 VT

我认为人们举了许多直观的例子,所以我只想分享一下。看到那帮助我了解了它是如何工作的。有很多有趣的算法和方法可以做与PCA类似的事情。稀疏编码是机器学习的一个子领域,主要涉及将矩阵分解为另外两个有用且有趣的子集,以反映模式。 AA


9

这是一个数学答案:第一个主成分是数据的最长维度。看一下,然后问:数据最宽的地方在哪里?那是第一个组成部分。下一个分量是垂直线。因此,一支雪茄的数据具有长度和宽度。对于任何长方形的东西,这都是有意义的。


6
不幸的是,这个答案的正确性取决于模糊的表达“最长”的解释方式。许多自然和相关的解释(例如直径)将是错误的。
ub

实际上,PCA可以使用不同类型的自然方式来很好地测量尺寸/大小。您只需要用矩阵替换协方差矩阵即可在任何方向上测量“维数”(矩阵只需要是正定义的或对称的即可。)就像QuickSort适用于不同的排序运算符一样,但是您将获得不同的结果针对不同的订购运营商。
James LI

9

我理解主要成分的方式是这样的:具有多个变量(高度,体重,年龄,温度,波长,存活百分比等)的数据可以在三个维度中显示,以绘制相关性。

现在,如果您想以某种方式理解“ 3D数据”,则可能想知道此3D数据的哪些2D平面(横截面)包含给定变量集的最多信息。这些2D平面是主要成分,包含每个变量的一部分。

将主要成分视为变量本身,并具有原始变量的综合特征(此新变量可描述为零件重量,零件高度,零件年龄等)。当您将一个主成分(X)与另一个(Y)作图时,您正在做的是构建一个2D地图,该地图可以用几何方式描述原始变量之间的相关性。现在有用的部分:由于要比较的每个主题(观察)都与每个变量的值相关联,因此,这些主题(观察)也可以在此XY映射中的某个位置找到。它们的位置基于每个基本变量的相对贡献(即,一个观测值可能受年龄和温度的严重影响,而另一个观测值可能受身高和体重的影响更大)。


8

在第二部分中,我将给出一个非数学的回答,并通过数学给出更详尽的鸟瞰图。


非玛西:

非数学解释是,PCA通过让您查看数据差异最大的方向来帮助处理高维数据。这些指示是主要组成部分。掌握了这些信息后,在某些情况下,您可以决定将主成分用作有意义的变量本身,并仅通过使主成分保持最大差异(解释能力)就可以大大降低数据的维数。

例如,假设您给出了一个包含30个问题的政治投票调查表,每个问题的回答为1(强烈不同意)至5(强烈同意)。您得到了大量的响应,现在您拥有30维数据,并且无法从中获得正面或反面的效果。然后,在无奈之下,您认为要运行PCA并发现90%的方差来自一个方向,并且该方向与您的任何轴都不对应。在进一步检查数据之后,您可以得出结论,这个新的混合轴对应于政治左右频谱,即民主/共和党频谱,然后继续研究数据中更微妙的方面。


玛蒂:

有时它有助于缩小并查看数学动机以阐明其含义。

有一个特殊的矩阵族,只需更改坐标轴即可将其转换为对角矩阵。自然,它们被称为对角化矩阵,并且足够优雅,执行此操作所需的新坐标轴确实是特征向量。

事实证明,协方差矩阵是对称的,并且总是对角化的!在这种情况下,特征向量被称为主成分,当您在特征向量坐标中写出协方差矩阵时,对角项(仅剩下的对角项)对应于特征向量方向上的方差。这使我们知道哪个方向的变化最大。此外,由于协方差矩阵在这些坐标中是对角线,因此您巧妙地消除了变量之间的所有相关性。

在实际应用中很常见,我们假设变量是正态分布的,因此尝试更改坐标以查看最简单的图片是很自然的。通过了解您的主要成分及其各自的特征值(方差),您将能够减少数据的维数(如果需要),并且可以快速概括一下数据变化的位置。

但在一天结束的时候,这一切可取的根源来自于一个事实,即对角矩阵的方式相比,他们的混乱,更普遍的堂兄弟更容易处理。


2
感谢您的贡献。但是,它似乎解决了PCA的不必要的狭义解释。(1)PCA已成功地应用于高度非高斯数据集。(2)PCA不是正式的参数化程序;最好将其视为具有探索性的精神。(3)任何类型的多元分布或数据的所有协方差矩阵都是对角线的。高斯性(正态性)和非简并性都不是必需的。(矩阵的对称性和具有实数的成分保证对角线化。)
胡伯(Shuuber)

我必须承认,我很尴尬地忘记了,但是关于协方差矩阵通常可以对角化的好处。我将进行编辑以反映这一点。另外,您能否详细说明第(2)点?我不熟悉参数化或非参数化过程之间的区别。
Christian Bueno

7

我认为PCA是一种几何工具。如果在3维空间中得到了一堆几乎全部在一条直线上的点,并且您想弄清楚那条线的方程,则可以通过PCA来获取(采用第一个分量)。如果您在3维空间中有一堆点,这些点大多是平面的,并且想要发现该平面的方程,请通过PCA进行处理(取最低有效分量向量,该向量应垂直于平面)。


7

为什么是特征值/特征向量?

在进行PCA时,您想通过最大化每个基向量上的预计方差来计算一些正交基。

计算完先前的基向量后,您希望下一个为:

  • 与上一个正交
  • 规范1
  • 最大化预计方差,即具有最大协方差范数

这是一个受约束的优化问题,拉格朗日乘数(这里是关于几何直觉的信息,请参阅维基百科页面)告诉您,在优化时,目标(投影方差)和约束(单位范数)的梯度应“平行”。

这与说下一个基向量应该是协方差矩阵的特征向量的说法是一样的。每个步骤的最佳选择是在其余步骤中选择特征值最大的步骤。


5
绝对不是外行的解释-正交基向量吗?最大化投影方差?约束优化问题?拉格朗日乘数?这些是高度“术语化”的术语。展示一个明白这些含义的外行,我将告诉您一个数学家/统计学家
概率

6

基本上,PCA会找到新变量,这些变量是原始变量的线性组合,因此在新空间中,数据的维数较少。想一想一个数据集,该数据集由以一定角度保持的平板表面上3个维度的点组成。在原始的x,y,z轴上,您需要3个维度来表示数据,但是通过正确的线性变换,您只需要2个即可。

基本上是@Joel所说的,但只是输入变量的线性组合。


6

一段时间以前,我试图了解PCA算法,并且想对特征向量和特征值做一个说明。该文件指出,EV的目的是将大型模型的模型转换为小型模型。

例如,与其先建造完整的桥梁,然后在其上进行实验和测试,不如使用电动汽车来创建一个很小的桥梁,所有因素/数量将以相同的幅度减少,而且可以根据原始模型的需要来计算并适当地扩大实际测试结果以及对其执行的应力相关测试。电动汽车以一种方式帮助创造原始的抽象

对我来说,这种解释对我想做的事情具有深远的意义!希望它也对您有帮助!


-1。也许我没有完全理解这种类比,但是它对我来说似乎是一种误导。PCA确实确实(以某种方式)允许将“大”模型“转换”为“小”模型,但是它通过减小数据集的维数来实现。但是,尺寸小的桥比大的桥小吗?它们都是3D的,不是吗。
变形虫

@amoeba:此摘录摘自我读过的论文,这些不完全是我的话。我已经很长时间没有研究这个主题了,我已经失去了踪影。
罗夏(Rorschach)2015年

6

想象一下,奶奶刚刚用圣诞节送给她的数码相机拍摄了她的第一张照片和电影,不幸的是,当按下按钮时她放下了右手,在电影拍摄过程中她也有些晃动。她注意到人,树,篱笆,建筑物,门口,家具等不是上下左右,也不是垂直的,并且地板,地面,大海,地平线也不是水平的,而且电影也很不稳定。她问您是否可以帮她解决这些问题,在家里和海滩(她是澳大利亚人)上拍摄全部3000张假日照片和大约100个视频,打开礼物,在乡下散步。她说,她拥有此照片软件,可让您做到这一点。您告诉她那将需要几天的时间,而且无论如何都无法处理这些视频,但您知道称为PCA和ICA的技术可能会有所帮助。您解释说,您的研究实际上只是将数据旋转到自然维度上,这些技术找到了数据中最重要的方向(在这种情况下为照片),然后旋转,所以最重要的一个是水平方向,第二个是水平方向是垂直的(尽管时间在电影中也是一个维度,但它甚至可以继续扩展到我们无法想象的更好的维度)。

-

技术方面。实际上,您可能会因此而获得博士学位,而Bell和Sejnowski(1997)的重要论文是关于与边缘相对应的图像的独立分量。将此与PCA关联:ICA首先使用PCA或SVD来降低尺寸和初始近似值,然后对它们进行改进,不仅考虑了PCA之类的二阶误差(SSE),而且考虑了高阶误差-如果的确如此ICA,所有较高阶,尽管许多算法将自己限制在3或4位置。低阶PCA分量确实容易受到水平和垂直方向的强烈影响。处理电影的相机运动也可以使用PCA / ICA。无论是2D照片还是2½D电影,您都需要几个代表性的技巧来实现。

您可以向奶奶解释的另一种应用是特征脸-高阶特征向量可以近似“ 7种基本情绪”(每种情绪的平均脸和“缩放旋转”或线性组合进行平均),但是通常我们会找到与性别和种族有关,有些可能区分个人或个人特征(眼镜,胡须等)。如果您几乎没有任何人的照片并且有很多情绪/表情,就会发生这种情况,但是如果您有很多带有中性表情的面孔,则会产生不同的偏见。使用ICA代替PCA似乎对基本情绪似乎并没有多大帮助,但是Bartlett和Sejnowsiki(1997)表明它发现了对面部识别有用的功能。


1
我赞赏与示例进行类比交流的努力。但是,使用图像是不幸的,因为奶奶很可能不会理解您对“旋转”的感觉与实际旋转图像的轴关系不大,她也不可能理解您正在使用“尺寸”从抽象的角度来看,照片具有数百万个维度,而不仅仅是两个。
ub

是的,您需要将其表示为点云,就像其他答案中的图像一样。用某种形式的边缘检测和/或阈值化进行预处理可能是我提到的“技巧”的一部分。但是要对复杂的照片进行操作,需要博士学位的技巧。
David MW Powers 2014年

@whuber我实际上已经使用PCA(以及SVD)在进行立体声图像校准时发现了这些旋转!绝对是一样的旋转感。
David MW Powers

2

我认为每个人都从错误的一端开始解释PCA:从特征向量开始。我的答案从正确的地方开始:坐标系。特征向量和特征问题通常是用于解决当前实际问题(即错误的坐标系)的数学工具。我会解释。

让我们从一行开始。什么是线?这是一维的对象。因此,您只需要一个维度就可以从一个点移动到另一个点。尽管在平面上,您可以在直线的任意点附加两个坐标。那是因为相对于线本身,坐标系是任意选择的。我认为,坐标系不能反映线的内部一维性质。如果只要我总是将我的笛卡尔坐标系的原点放在直线上,然后旋转它使其x轴在直线上,那么我就不再需要y轴!我的所有点都在一个轴上,因为线是一维对象。

这就是PCA解释的起点。本征问题是执行我所描述的旋转的工具,变量的去含义将原点放在直线上。只要变量之间的关系是线性的, PCA就能帮助揭示数据的真实维度。


1

请记住,特征向量是一个向量,其变换平行于相同的输入向量。因此,具有较高特征值的特征向量意味着特征向量与数据具有高度的“平行度”,这意味着您只能使用该向量来表示数据,并且期望新表示形式中的误差很小。如果您选择特征值较低的其他特征向量,则将能够表示数据的更多细节,因为您将代表其他“平行度”-由于特征值较低,因此不如第一个突出。


0

PCA基本上是高维空间到低维空间的投影,同时保留了尽可能多的信息。

我写了一篇博客文章,通过3D茶壶的投影来解释PCA ...

在此处输入图片说明

...在2D平面上,同时保留尽可能多的信息:

在此处输入图片说明

详细信息和完整的R代码可在以下文章中找到:http :
//blog.ephorie.de/intuition-for-principal-component-analysis-pca


1
尽管有图像,但目前这更多是评论而不是答案。您可以通过在链接上提供信息摘要来扩展它吗?SE网络中的帖子应该能够独立存在。
gung

@gung:足够公平-要点是PCA基本上是一个高维空间(在这种情况下为3D茶壶)到低维空间(在这种情况下为2D平面)的投影,同时保留了尽可能多的信息可能。将改变答案。
vonjd

确实是正确的(并在该线程上的许多其他现有答案中进行了解释),但是通常应该在SE系统中发布更多的答案,并且,例如,如果链接断开,它们应该能够独立存在。
gung

1
茶壶的例子很有趣。您说PCA是对较低维空间的投影,同时保留了尽可能多的“信息”。但是..什么是信息?对于PCA,这意味着将总方差保持尽可能高。茶壶示例更像是通过使用特定平面上的投影来说明信息“被最保留”,但这并不能解释PCA如何做到这一点以及它是否也是“信息”的“最佳”选择。例如,LDA也是旨在保留信息的投影,但与PCA不同。
Martijn Weterings

如果您的茶壶比PCA的圆形/圆形(不那么高),将“选择”一个不同的交集以保留大多数“信息”。
Martijn Weterings

-4

在这些分析的后期,也许隐含了一个假设,即第一组的数据不同于第二组的数据,并且人们正试图找出哪个成分可能是造成差异的主要因素。

进行PCA分析后,得出两组不同的椭球体相同,然后告诉您两组所测量的参数没有差异。


2
我想知道您是否正在考虑MANOVA。如果您运行两个单独的PCA,则只会显示相关al结构相似。
gung

2
-1。出于@gung概述的原因,这是一个完全令人误解的答案。而且,它甚至都没有尝试解释什么是PCA。
变形虫
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.