主成分分析理解笔记

什么是PCA?

假设您要预测2017年美国的国内生产总值(GDP)。您有很多可用信息:2017年第一季度的美国GDP,2016年全年的美国GDP, 2015年,依此类推。 您具有任何公开可用的经济指标,例如失业率,通货膨胀率等。 您有2010年的美国人口普查数据估算每个行业的美国人数量,而美国社区调查数据则在每次普查之间都会更新这些估算值。 你知道众议院和参议院有多少成员属于每个政党。 您可以收集股价数据,一年中进行的IPO数量以及似乎有多少CEO正在竞购公职。 尽管要考虑的变量太多,但这只是表面问题。

如果您以前使用过很多变量,那么您就会知道这会带来问题。您了解每个变量之间的关系吗?您是否有太多变量,以至于有可能使模型无法适应数据,或者可能违反了使用哪种建模策略的假设?

您可能会问一个问题:“我该如何处理我收集的所有变量,而只关注其中几个?”用技术术语来说,您想“减小特征空间的尺寸”。通过减小特征空间的维数,您可以减少要考虑的变量之间的关系,并且不太可能过拟合模型。 (注意:这并不意味着过度拟合等不再是问题,而是我们朝着正确的方向发展!)

毫不奇怪,缩小特征空间的尺寸称为“降维”。有许多方法可以实现降维,但是其中大多数技术都属于以下两类之一:
特征消除
特征提取

特征消除的功能听起来像是:我们通过消除要素来减少要素空间。在上面的GDP示例中,我们可能会删除所有变量,而不是考虑所有变量,但我们会留下三个变量可以最好地预测美国的国内生产总值。特征消除方法的优点包括简单和保持变量的可解释性。
但不好的是,您无法从删除的变量中获得任何信息。如果仅使用去年的GDP,根据美国社区调查最新数字得出的制造业就业人口比例以及失业率来预测今年的GDP,那么我们会错过任何可能导致模型变差的变量。通过消除功能,我们还完全消除了删除变量所带来的好处。

但是,特征提取不会遇到此问题。假设我们有十个独立变量。在特征提取中,我们创建了十个“新”自变量,其中每个“新”自变量都是十个“旧”自变量中每个变量的组合。但是,我们以特定方式创建这些新的自变量,并根据它们对我们的因变量的预测程度对这些新变量进行排序。

您可能会说:“降维在哪里起作用?”好吧,我们保留了尽可能多的新自变量,但是我们删除了“最不重要的”。因为我们按照新变量对因变量的预测程度对它们进行排序,所以我们知道哪个变量最重要和最不重要。但是-这就是关键-因为这些新的独立变量是我们旧变量的组合,所以即使删除一个或多个“新”变量,我们仍然保留旧变量中最有价值的部分!

主成分分析是一种特征提取技术,因此它以特定方式组合了我们的输入变量,然后我们可以删除“最不重要”的变量,同时仍然保留所有变量中最有价值的部分!另外一项好处是,PCA之后的每个“新”变量都彼此独立。这是有好处的,因为线性模型的假设要求我们的自变量彼此独立。如果我们决定使用这些“新”变量拟合线性回归模型(请参见另一篇的“主要成分回归”),则必须满足此假设。

什么时候应该使用PCA?

  1. 是否要减少变量的数量,但无法识别变量以将其完全排除在考虑范围之外?
  2. 是否要确保变量相互独立?
  3. 是否愿意让自变量难以解释?

如果对所有三个问题都回答“是”,那么PCA是一个很好的使用方法。 如果对问题3回答“否”,则不应使用PCA。

PCA如何工作?

此后的部分讨论了PCA为何起作用,但是在进入算法之前提供简短摘要可能对上下文有帮助:

我们将计算一个矩阵,该矩阵总结我们的变量如何相互关联。

然后,我们将该矩阵分解为两个独立的部分:方向和幅度。 然后,我们可以了解数据的“方向”及其“大小”(或每个方向的“重要性”)。
以下来自setosa.io小程序的屏幕截图显示了此数据中的两个主要方向:“红色方向”和“绿色方向”。 在这种情况下,“红色方向”更为重要。 我们稍后将讨论为什么会出现这种情况,但是考虑到点的排列方式,您能理解为什么“红色方向”比“绿色方向”看起来更重要吗? (提示:最适合该数据的线是什么样的?)

在这里插入图片描述
我们将转换原始数据以使其与这些重要方向一致(这些原始方向是原始变量的组合)。 下面的屏幕截图(同样来自setosa.io)与上面的数据完全相同,但是经过了转换,因此x轴和y轴现在分别是“红色方向”和“绿色方向”。 最合适的生产线在这里是什么样的?

在这里插入图片描述

尽管此处的可视示例是二维的(因此我们有两个“方向”),但请考虑一下我们的数据具有更大维度的情况。 通过确定哪些“方向”最“重要”,我们可以通过删除“最不重要”的“方向”将数据压缩或投影到较小的空间中。 通过将数据投影到较小的空间中,我们减小了特征空间的维数。但是由于我们已经在这些不同的“方向”上转换了数据,因此我们确保将所有原始变量保留在模型中!

在这里,我逐步介绍了执行PCA的算法。 尽量用简单的话来说,但是这里不可能忽略细节,因此我的目标是尽可能明确地介绍所有内容。 下一部分将更深入地介绍算法的工作原理。

开始之前,您应该将表格数据组织为n行,并可能包含p + 1列,其中一列对应于您的因变量(通常表示为Y),p列对应于一个自变量(通常以矩阵表示) X)。

首先第一步如果存在Y变量并将其作为数据的一部分,则按照上面的定义将数据分为Y和X,我们将主要使用X。
(请注意:如果没有Y列,那没关系-跳到下一步!)

第二步取自变量X的矩阵,对于每列,从每个条目中减去该列的平均值。 (这确保每列的平均值为零。)

第三步决定是否标准化。 给定X列,具有较高方差的特征是否比具有较低方差的特征更重要,还是特征的重要性与方差无关? (在这种情况下,重要性表示要素对Y的预测程度。)如果要素的重要性与要素的方差无关,则将列中的每个观察值除以该列的标准差。 (这与步骤2相结合,对X的每一列进行了标准化,以确保每一列具有均值为零和标准偏差1。)将居中(并可能经过标准化)的矩阵称为Z。

第四步取矩阵Z,对其进行转置,然后将转置的矩阵乘以Z。
(以数学方式将其写出,我们将其写为ZᵀZ。)
所得矩阵是Z的协方差矩阵,最大为一个常数。

第五步计算特征向量及其对应的ZᵀZ特征值。 在大多数计算程序包中,这很容易做到—实际上,ZᵀZ的特征分解是将ZᵀZ分解为PDP⁻¹,其中P是特征向量的矩阵,D是对角矩阵,特征值在对角线上,各处均为零 其他。 D对角线上的特征值将与P中的相应列相关联-即D的第一元素为λ₁,而对应的特征向量为P的第一列。这对于D中的所有元素及其中的相应特征向量均成立 P。我们将始终能够以这种方式计算PDP¹。

第六步取特征值λ1,λ2,…,λp并将其从最大到最小排序。 为此,请对P中的特征向量进行相应排序。 (例如,如果λ2是最大特征值,则取P的第二列并将其放在第一列的位置。)根据计算包的不同,这可以自动完成。 将此特征向量的分类矩阵称为P *。 (P *的列应与P的列相同,但顺序可能不同。)请注意,这些特征向量彼此独立。

第七步计算Z * = ZP *。 这个新矩阵Z *是X的居中/标准化版本,但现在每个观察值都是原始变量的组合,其中权重由特征向量确定。 另外,由于我们在P *中的特征向量彼此独立,因此Z *的每一列也彼此独立!

最后最后,我们需要确定要保留多少个功能还是要删除多少个功能。有三种常见的方法可以确定这一点,下面将对其进行讨论,然后给出一个明确的示例

方法1:我们任意选择要保留的尺寸。也许我想在两个维度上直观地表示事物,所以我可能只保留两个特征。这取决于用例,对于要选择多少个功能并没有严格的规定。

方法2:计算每个要素解释的方差比例(以下简要说明),选择一个阈值,然后添加要素,直到达到该阈值。 (例如,如果您想解释模型可能解释的总变异性的80%,请添加具有最大解释变异率的要素,直到解释变异率达到或超过80%。)

方法3:这与方法2密切相关。计算每个要素的解释方差比例,按解释的方差比例对要素进行排序,并绘制保留更多要素的累计方差比例。 (此图称为碎石图,如下所示。)通过确定添加新特征的点相对于先前特征有明显下降的方差,然后选择直到该点的特征,可以选择要包含的特征数。 。 (我称此方法为“查找肘部”方法,因为在卵石图中查看“弯曲”或“肘部”可以确定出现最大方差下降的原因。)

因为每个特征值大致都是其对应特征向量的重要性,所以解释的方差比例是您保留的特征的特征值之和除以所有特征的特征值之和。

现在让我们来看一些示例:
方法1:我们任意选择要包含的多个主要组成部分。假设我想在模型中保留五个主要组成部分。在上面的遗传数据案例中,这五个主要成分可解释总变异性的约66%,这可通过包括所有13个主要成分来解释。

方法2:假设我想包含足够的主成分来解释所有13个主成分所解释的总变异性的90%。在上面的遗传数据案例中,我将包括前10个主要成分,并从Z *除去最后三个变量。

方法3:在这里,我们要“找到肘部”。在上面的scree图中,我们看到在主成分2和主成分3之间解释的可变性比例有很大下降。在这种情况下,我们可能会包括前两个特征,而删除其余特征。如您所见,此方法有点主观,因为“弯头”没有精确的数学定义,在这种情况下,我们将包括一个仅能解释总变异性42%的模型。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值