提交 6a12b9e0 编写于 作者: W wizardforcel

ch6 pic

上级 14571902
......@@ -36,35 +36,35 @@
任何矩形矩阵都可以分解为三个特定形状和特征的矩阵:
$X=UΣV^T$
![X=UΣV^T](../images/tex-86f9bdb9aa55b36fd4c94ed0e211e841.gif)
这里,$U$ 和 $V$ 是正交矩阵(即 $UU^T=I$ 并且 $VV^T=I$
$Σ$ 是对角线包含`X`的奇异值的矩阵,它可以是正的,零的或负的。
假设 $X$ 有`n``d`列且`n≥d`,那么 $U$ 的大小为`n x d`,$Σ$ 和 $V$ 的大小为`d x d`。(请参阅[“奇异值分解(SVD)”](https://www.safaribooksonline.com/library/view/feature-engineering-for/9781491953235/app01.html#sec-svd)来获得矩阵的 SVD 和特征分解的完整评论。)
这里,![U](../images/tex-4c614360da93c0a041b22e537de151eb.gif) 和 ![V](../images/tex-5206560a306a2e085a437fd258eb57ce.gif) 是正交矩阵(即 ![UU^T=I](../images/tex-2ba6e1c50f379b10434074afcf58ddbc.gif) 并且 ![VV^T=I](../images/tex-caf2169d36b2dee91e1fff5c1ea566c3.gif)
![Σ](../images/tex-d527ca074d412d9d0ffc844872c4603c.gif) 是对角线包含`X`的奇异值的矩阵,它可以是正的,零的或负的。
假设 ![X](../images/tex-02129bb861061d1a052c592e2dc6b383.gif)`n``d`列且`n≥d`,那么 ![U](../images/tex-4c614360da93c0a041b22e537de151eb.gif) 的大小为`n x d`,![Σ](../images/tex-d527ca074d412d9d0ffc844872c4603c.gif) 和 ![V](../images/tex-5206560a306a2e085a437fd258eb57ce.gif) 的大小为`d x d`。(请参阅[“奇异值分解(SVD)”](https://www.safaribooksonline.com/library/view/feature-engineering-for/9781491953235/app01.html#sec-svd)来获得矩阵的 SVD 和特征分解的完整评论。)
公式 6-1 有用的平方和标识
$||w||^2_2=ww^T=\sum w^2$
![||w||^2_2=ww^T=\sum w^2](../images/tex-c6c7bca34b2b0dce6391907f77f6c7e6.gif)
## 线性投影
让我们逐步分解 PCA 的推导。PCA 使用线性投影将数据转换为新的特征空间。 [图 6-2(c)](https://www.safaribooksonline.com/library/view/feature-engineering-for/9781491953235/ch06.html#fig-pca)说明了线性投影是什么样子。当我们将 $x$ 投影到 $w$ 时,投影的长度与两者之间的内积成正比,用`w`(它与它本身的内积)进行规范归一化。稍后,我们将`w`单位化。所以只有相关部分是分子。
让我们逐步分解 PCA 的推导。PCA 使用线性投影将数据转换为新的特征空间。 [图 6-2(c)](https://www.safaribooksonline.com/library/view/feature-engineering-for/9781491953235/ch06.html#fig-pca)说明了线性投影是什么样子。当我们将 ![x](../images/tex-9dd4e461268c8034f5c8564e155c67a6.gif) 投影到 ![w](../images/tex-f1290186a5d0b1ceab27f4e77c0c5d68.gif) 时,投影的长度与两者之间的内积成正比,用`w`(它与它本身的内积)进行规范归一化。稍后,我们将`w`单位化。所以只有相关部分是分子。
公式 6-2 投影坐标
$z=x^Tw$
![z=x^Tw](../images/tex-91c12281048afc136aa3858ab263840c.gif)
请注意,`z`是一个标量,而 $x$ 和 $v$ 是列向量。由于有一堆的数据点,我们可以制定所有投影坐标的向量$z$在新特征 $v$。这里,$X$ 是熟悉的数据矩阵,其中每行是数据点,得到的 $z$ 是一个列向量。
请注意,`z`是一个标量,而 ![x](../images/tex-9dd4e461268c8034f5c8564e155c67a6.gif) 和 ![v](../images/tex-9e3669d19b675bd57058fd4664205d2a.gif) 是列向量。由于有一堆的数据点,我们可以制定所有投影坐标的向量![z](../images/tex-fbade9e36a3f36d3d676c1b808451dd7.gif)在新特征 ![v](../images/tex-9e3669d19b675bd57058fd4664205d2a.gif)。这里,![X](../images/tex-02129bb861061d1a052c592e2dc6b383.gif) 是熟悉的数据矩阵,其中每行是数据点,得到的 ![z](../images/tex-fbade9e36a3f36d3d676c1b808451dd7.gif) 是一个列向量。
公式6-4 投影坐标向量
$z=Xw$
![z=Xw](../images/tex-7fc12559305cad81268f2d2409f018c2.gif)
![图6-2](../images/chapter_6/6-2.png)
图 6-2 PCA 的插图
(a)特征空间中的原始数据,(b)以数据为中心 (c)将数据向量`x`投影到另一向量`v`上,(d)使投影坐标的方差最大化的方向是 $X^TX$ 的主要特征向量。
(a)特征空间中的原始数据,(b)以数据为中心 (c)将数据向量`x`投影到另一向量`v`上,(d)使投影坐标的方差最大化的方向是 ![X^TX](../images/tex-169ca389ed346f151e81acc018d8e270.gif) 的主要特征向量。
## 方差和经验方差
......@@ -72,15 +72,15 @@ $z=Xw$
公式 6-6 随机变量`Z`的方差
$Var(Z)=E[Z-E(Z)]^2$
![Var(Z)=E[Z-E(Z)]^2](../images/tex-3fc38cf4f89bc510e39d9767cb0dac4c.gif)
有一个小问题:我们提出的问题没有提到平均值 $E(Z)$;它是一个自由变量。一个解决方案是从公式中删除它,从每个数据点中减去平均值。结果数据集的平均值为零,这意味着方差仅仅是 $Z^2$ 几何的期望值,减去平均值会产生数据居中效应。 (见[图 6-2](https://www.safaribooksonline.com/library/view/feature-engineering-for/9781491953235/ch06.html#fig-pca)`a-b`))。密切相关的量是两个随机变量`Z1``Z2`之间的协方差。把它看作是方差思想的扩展(单个随机变量)到两个随机变量。
有一个小问题:我们提出的问题没有提到平均值 ![E(Z)](../images/tex-f971cc61468f4da0751fc25c284f7894.gif);它是一个自由变量。一个解决方案是从公式中删除它,从每个数据点中减去平均值。结果数据集的平均值为零,这意味着方差仅仅是 ![Z^2](../images/tex-6cd1cd1cca0fa8f14410ab154c493f69.gif) 几何的期望值,减去平均值会产生数据居中效应。 (见[图 6-2](https://www.safaribooksonline.com/library/view/feature-engineering-for/9781491953235/ch06.html#fig-pca)`a-b`))。密切相关的量是两个随机变量`Z1``Z2`之间的协方差。把它看作是方差思想的扩展(单个随机变量)到两个随机变量。
公式 6-8 两个随机变量`Z1``Z2`之间的协方差
$Cov(Z_1,Z_2)=E[(Z_1-E(Z_1))(Z_2-E(Z_2))]$
![Cov(Z_1,Z_2)=E[(Z_1-E(Z_1))(Z_2-E(Z_2))]](../images/tex-e66f0e324a5b6e3b574c6f51b5bbda83.gif)
当随机变量的均值为零时,它们的协方差与它们的线性相一致相关性 $E[Z_1,Z_2]$。 稍后我们会听到更多关于这个概念的信息。
当随机变量的均值为零时,它们的协方差与它们的线性相一致相关性 ![E[Z_1,Z_2]](../images/tex-239f50a06e3c62ec5b84a1944db24b21.gif)。 稍后我们会听到更多关于这个概念的信息。
数据上定义了统计量,如方差和期望值分配。 在实践中,我们没有真正的分布,但只有一堆观察数据点`z1, ..., z n`。这被称为经验分布,它给我们一个方差的经验估计。
......@@ -88,13 +88,13 @@ $Cov(Z_1,Z_2)=E[(Z_1-E(Z_1))(Z_2-E(Z_2))]$
## 公式法:第一个要素
结合[公式 6-2](https://www.safaribooksonline.com/library/view/feature-engineering-for/9781491953235/ch06.html#projection-coordinate)$z_i$ 的定义,我们有以下公式用于最大化投影数据的方差。(我们从中删除分母`n-1`经验方差的定义,因为它是一个全局常数而不是影响价值最大化的地方。)
结合[公式 6-2](https://www.safaribooksonline.com/library/view/feature-engineering-for/9781491953235/ch06.html#projection-coordinate)![z_i](../images/tex-5a5ae0760dc3dac91e546c0ea25586b0.gif) 的定义,我们有以下公式用于最大化投影数据的方差。(我们从中删除分母`n-1`经验方差的定义,因为它是一个全局常数而不是影响价值最大化的地方。)
公式 6-12 主成分的目标函数
![公式6-12](../images/chapter_6/6-12.png)
这里的约束迫使 $w$ 与其自身的内积为 1,这是相当于说向量必须有单位长度。这是因为我们只关心 $w$ 的方向而不是 $w$ 的大小。$w$ 的大小是 1 不必要的自由度,所以我们把它设置为任意的值。
这里的约束迫使 ![w](../images/tex-f1290186a5d0b1ceab27f4e77c0c5d68.gif) 与其自身的内积为 1,这是相当于说向量必须有单位长度。这是因为我们只关心 ![w](../images/tex-f1290186a5d0b1ceab27f4e77c0c5d68.gif) 的方向而不是 ![w](../images/tex-f1290186a5d0b1ceab27f4e77c0c5d68.gif) 的大小。![w](../images/tex-f1290186a5d0b1ceab27f4e77c0c5d68.gif) 的大小是 1 不必要的自由度,所以我们把它设置为任意的值。
## 主要成分:矩阵-向量表达式
......@@ -102,9 +102,9 @@ $Cov(Z_1,Z_2)=E[(Z_1-E(Z_1))(Z_2-E(Z_2))]$
6-4 主成分的目标函数,矩阵-向量表达式
$max_w \, w^Tw, where \, w^Tw = 1$
![max_w \, w^Tw, where \, w^Tw = 1](../images/tex-6cb75f7a0cfd7d7e84a23ed52075002b.gif)
PCA 的这种表述更明确地提出了目标:我们寻找一个输入最大化输出的标准的方向。这听起来很熟悉吗? 答案在于`X`的奇异值分解(SVD)。最优 $w$ 是 $X$ 的主要左奇异向量,它也是 $X^TX$ 的主特征向量。投影数据被称为原始数据的主成分。
PCA 的这种表述更明确地提出了目标:我们寻找一个输入最大化输出的标准的方向。这听起来很熟悉吗? 答案在于`X`的奇异值分解(SVD)。最优 ![w](../images/tex-f1290186a5d0b1ceab27f4e77c0c5d68.gif) 是 ![X](../images/tex-02129bb861061d1a052c592e2dc6b383.gif) 的主要左奇异向量,它也是 ![X^TX](../images/tex-169ca389ed346f151e81acc018d8e270.gif) 的主特征向量。投影数据被称为原始数据的主成分。
## 主成分的一般解决方案
......@@ -112,17 +112,17 @@ PCA 的这种表述更明确地提出了目标:我们寻找一个输入最大
公式 6-16 目标函数的`k + 1`个主成分
$max_w \, w^Tw$, where \, $w^Tw = 1 \, and \, w^Tw_1 = \ldots w^Tw_n = 0$
![max_w \, w^Tw](../images/tex-65d636e0619f9fbbb2c7fde05130dbe2.gif), where \, ![w^Tw = 1 \, and \, w^Tw_1 = \ldots w^Tw_n = 0](../images/tex-d8abebb35cf3e05b9d07e15cacc2dd24.gif)
该解是`X`的第`k+1`个左奇异向量,按奇异值降序排序。因此,前`k`个主成分对应于前`k``X`的左奇异向量。
## 转换功能
一旦找到主成分,我们可以使用线性转换特征投影。令 $X=UΣV^T$ 是`X``S`的 SVD,第`k`列中包含的矩阵前`k`个左奇异向量。`X`的维数为`nxd`,其中`d`是个数原始特征,并且 $V_k$ 具有尺寸`d×k`。 而不是单个投影如[公式 6-4 ](https://www.safaribooksonline.com/library/view/feature-engineering-for/9781491953235/ch06.html#projection-vector)中的向量,我们可以同时投影到`a`中的多个向量投影矩阵。
一旦找到主成分,我们可以使用线性转换特征投影。令 ![X=UΣV^T](../images/tex-86f9bdb9aa55b36fd4c94ed0e211e841.gif)`X``S`的 SVD,第`k`列中包含的矩阵前`k`个左奇异向量。`X`的维数为`nxd`,其中`d`是个数原始特征,并且 ![V_k](../images/tex-e60bc493da0ec3fc7e3b8414758ee218.gif) 具有尺寸`d×k`。 而不是单个投影如[公式 6-4 ](https://www.safaribooksonline.com/library/view/feature-engineering-for/9781491953235/ch06.html#projection-vector)中的向量,我们可以同时投影到`a`中的多个向量投影矩阵。
公式 6-18 PCA 投影矩阵
$ W = V_k $
![ W = V_k ](../images/tex-5214dcb86542ffe5892cddeb62c20c9d.gif)
投影坐标矩阵易于计算,并且可以使用奇异向量彼此正交的事实来进一步简化。
......@@ -140,15 +140,15 @@ PCA 的许多推导涉及首先集中数据,然后采取特征协方差矩阵
公式 6-20 数据矩阵中心化
$C = X-1μ^T$,其中`1`是全部是 1 的列向量,并且`μ`是包含`X`的平均行数的列向量。
![C = X-1μ^T](../images/tex-47a45202766a23f30dee6d2a447522c6.gif),其中`1`是全部是 1 的列向量,并且`μ`是包含`X`的平均行数的列向量。
公式 6-21 计算 SVD
$C = UΣV^T$
![C = UΣV^T](../images/tex-09a7769b614d190ec8aac6ed907dfb44.gif)
公式 6-22 主成分
$k$个主分量是 $V$ 的前`k`列,即右奇异向量对应于`k`个最大奇异值。
![k](../images/tex-8ce4b16b22b58894aa86c421e8759df3.gif)个主分量是 ![V](../images/tex-5206560a306a2e085a437fd258eb57ce.gif) 的前`k`列,即右奇异向量对应于`k`个最大奇异值。
公式 6-23 转换数据
......@@ -198,7 +198,7 @@ array([ 0.14890594, 0.13618771, 0.11794594, 0.08409979, 0.05782415,
>>> ax = fig.add_subplot(111, projection='3d')
>>> for i in range(100):
... ax.scatter(pca_images[i,0], pca_images[i,1], pca_images[i,2],
... marker=r'${}$'.format(labels[i]), s=64)
... marker=r'![{}](../images/tex-99914b932bd37a50b983c5e7c90ae93b.gif)'.format(labels[i]), s=64)
>>> ax.set_xlabel('Principal component 1')
>>> ax.set_ylabel('Principal component 2')
......@@ -223,7 +223,7 @@ array([ 0.14890594, 0.13618771, 0.11794594, 0.08409979, 0.05782415,
![公式6-24](../images/chapter_6/6-24.png)
白化与维度降低无关;可以独立执行不受其他的干扰。例如,零相分量分析(ZCA)(Bell 和 Sejnowski,1996)是一种与 PCA 密切相关的白化转化,但事实并非减少特征的数量。ZCA 白化使用全套主要特征 $V$ 没有减少,并且包括一个额外的乘法回到 $V^T$
白化与维度降低无关;可以独立执行不受其他的干扰。例如,零相分量分析(ZCA)(Bell 和 Sejnowski,1996)是一种与 PCA 密切相关的白化转化,但事实并非减少特征的数量。ZCA 白化使用全套主要特征 ![V](../images/tex-5206560a306a2e085a437fd258eb57ce.gif) 没有减少,并且包括一个额外的乘法回到 ![V^T](../images/tex-e235900271ebce7e675cc5f3bd724021.gif)
公式 6-25 ZCA 白化
......@@ -235,17 +235,17 @@ array([ 0.14890594, 0.13618771, 0.11794594, 0.08409979, 0.05782415,
当使用 PCA 进行降维时,必须解决使用多少个主成分(`k`)的问题。像所有的超参数一样,这个数字可以根据最终模型的质量进行调整。但也有启发式算法不涉及高度的计算方法。
一种可能性是选择`k`来解释总方差的所需比例。(该选项在 scikit-learn 软件包的 PCA 中可用)投影到第k个分量上:$||Xv_k||^2= ||u_kσ_k||^2=$=$σ_k^2$,这是正方形 $X$ 的第`k`个最大奇异值。`a`的奇异值的有序列表矩阵被称为其频谱。因此,为了确定要使用多少个成分,人们可以对数据矩阵进行简单的频谱分析并选择阈值保留足够的差异。
一种可能性是选择`k`来解释总方差的所需比例。(该选项在 scikit-learn 软件包的 PCA 中可用)投影到第k个分量上:![||Xv_k||^2= ||u_kσ_k||^2=](../images/tex-39fe0c73dd5f856dd9cb63f655541ec1.gif)=![σ_k^2](../images/tex-57d7d8e5d9f8948c3052746f23f7bf05.gif),这是正方形 ![X](../images/tex-02129bb861061d1a052c592e2dc6b383.gif) 的第`k`个最大奇异值。`a`的奇异值的有序列表矩阵被称为其频谱。因此,为了确定要使用多少个成分,人们可以对数据矩阵进行简单的频谱分析并选择阈值保留足够的差异。
## 基于占用方差的k选择
要保留足够的成分覆盖数据总方差的80%,请这样选择`k`$frac{\sum_{i=1}^{k}σ_i^2}{\sum_{i=1}^{d}σ_i^2}\geq 8$
要保留足够的成分覆盖数据总方差的80%,请这样选择`k`![frac{\sum_{i=1}^{k}σ_i^2}{\sum_{i=1}^{d}σ_i^2}\geq 8](../images/tex-e944ce19c183de6b3a72679609fe5e5c.gif)
另一种选择k的方法涉及数据集的固有维度。这个是一个更朦胧的概念,但也可以从频谱中确定。基本上,如果谱包含一些很大的奇异值和一些小奇异值,那么可能只是收获最大的奇异值并丢弃其余的值。有时候其余的频谱不是很小,但头部和尾部值之间有很大差距。这也是一个合理的截止点。 该方法需要光谱进行视觉检查,因此不能作为自动化管线的一部分执行。
对 PCA 的一个关键批评是转变相当复杂,并且结果因此很难解释。主成分和投影向量是真实的价值,可能是积极的或消极的。主成分是(居中)行的基本线性组合,以及投影值为列的线性组合。例如,在股票申报中,每个因素都是股票收益时间片的线性组合。那是什么意思?学习因素很难附加人为的理解原因。因此,分析师很难相信结果。如果你不能解释你为什么正在把数十亿其他人的钱放在特定的股票上,你可能会这样做将不会选择使用该模型。
PCA 在计算上是繁杂的的。它依赖于 SVD,这是一个昂贵的过程。计算一个矩阵的全 SVD 需要 $O(nd^2+d^3)$ 操作 [Golub 和 Van Loan,2012],假设`n≥d`,即数据点比特征更多。即使我们只需要`k`个主成分,计算截断 SVD(`k`个最大奇异值和向量)仍然需要 $O((n+d)^2*k)= O(n^2k)$操作。这是令人望而生畏的当有大量数据点或特征时。
PCA 在计算上是繁杂的的。它依赖于 SVD,这是一个昂贵的过程。计算一个矩阵的全 SVD 需要 ![O(nd^2+d^3)](../images/tex-56802ad342c94c41c22f83e1fa3f8ea4.gif) 操作 [Golub 和 Van Loan,2012],假设`n≥d`,即数据点比特征更多。即使我们只需要`k`个主成分,计算截断 SVD(`k`个最大奇异值和向量)仍然需要 ![O((n+d)^2*k)= O(n^2k)](../images/tex-735e6824680c7d448ec778042f8bb840.gif)操作。这是令人望而生畏的当有大量数据点或特征时。
以流媒体方式,批量更新或者从 PCA 执行 PCA是 很困难的完整数据的样本。SVD 的流式计算,更新 SVD 和从一个子样本计算 SVD 都是很难研究的问题。算法存在,但代价是精度降低。一个含义是人们应该期待将测试数据投影到主成分上时代表性较低在训练集上找到。随着数据分布的变化,人们不得不这样做重新计算当前数据集中的主成分。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册