Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
fe4ml-zh
提交
14efad2c
F
fe4ml-zh
项目概览
OpenDocCN
/
fe4ml-zh
通知
5
Star
1
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
fe4ml-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
14efad2c
编写于
5月 26, 2018
作者:
C
cn-Wziv
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
第六章
上级
cbe9abef
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
41 addition
and
41 deletion
+41
-41
docs/6.降维:用PCA压缩数据集.md
docs/6.降维:用PCA压缩数据集.md
+41
-41
未找到文件。
docs/6.降维:用PCA压缩数据集.md
浏览文件 @
14efad2c
...
...
@@ -44,117 +44,117 @@
$$||w||^2_2=ww^T=
\s
um w^2$$
##线性投影
##
线性投影
让我们逐步分解PCA的推导。PCA使用线性投影将数据转换为新的特征空间。
[
图6-2(c)
](
https://www.safaribooksonline.com/library/view/feature-engineering-for/9781491953235/ch06.html#fig-pca
)
说明了线性投影是什么样子。当我们将
\\
(x
\\
)投影到
\\
(w
\\
)时,投影的长度与两者之间的内积成正比,用w(它与它本身的内积)进行规范归一化。稍后,我们将w有单位化。所以只有相关部分是分子。
###公式6-2.投影坐标
###
公式6-2.投影坐标
###公式6-2.\\(z=x^Tw\\)
###
公式6-2.\\(z=x^Tw\\)
请注意,z是一个标量,而
\\
(x
\\
)和
\\
(v
\\
)是列向量。由于有一堆的数据点,我们可以制定所有投影坐标的矢量
\\
(z
\\
)在新特征
\\
(v
\\
)。这里,
\\
(X
\\
)是熟悉的数据矩阵,其中每行是数据点,得到的
\\
(z
\\
)是一个列向量。
###公式6-4.投影坐标矢量
###
公式6-4.投影坐标矢量
###公式6-4.\\(z=Xw\\)
###
公式6-4.\\(z=Xw\\)
![
图6-2
](
../images/chapter_6/6-2.png
)
**图6-2. PCA的插图 (a)特征空间中的原始数据 (b)以数据为中心 (c)将数据矢量x投影到另一矢量v上(d)使投影坐标的方差最大化的方向是\\(X^TX\\)的主要特征向量。**
##方差和经验方差
##
方差和经验方差
下一步是计算投影的方差。方差定义为对平均距离的平方的期望。
###公式6-6.随机变量Z的方差
###
公式6-6.随机变量Z的方差
###公式6-6.\\(Var(Z)=E[Z-E(Z)]^2\\)
###
公式6-6.\\(Var(Z)=E[Z-E(Z)]^2\\)
有一个小问题:我们提出的问题没有提到平均值
\\
(E(Z)
\\
); 它是一个自由变量。一个解决方案是从等式中删除它,从每个数据点中减去平均值。结果数据集的平均值为零,这意味着方差仅仅是
\\
(Z^2
\\
)几何的期望值,减去平均值会产生数据居中效应。 (见
[
图6-2
](
https://www.safaribooksonline.com/library/view/feature-engineering-for/9781491953235/ch06.html#fig-pca
)
(a-b))。密切相关的量是两个随机变量Z1和Z2之间的协方差。把它看作是方差思想的扩展(单个随机变量)到两个随机变量。
###公式6-8.两个随机变量Z和Z之间的协方差
###
公式6-8.两个随机变量Z和Z之间的协方差
###公式6-8.\\(Cov(Z,Z)=E[(Z-E(Z)(Z-E(Z)]\\).
###
公式6-8.\\(Cov(Z,Z)=E[(Z-E(Z)(Z-E(Z)]\\).
当随机变量的均值为零时,它们的协方差与它们的线性相一致相关性
\\
(E[Z1,Z2]
\\
)。 稍后我们会听到更多关于这个概念的信息。
数据上定义了统计量,如方差和期望值分配。 在实践中,我们没有真正的分布,但只有一堆观察数据点z1,...,z n。这被称为经验分布,它给我们一个方差的经验估计。
###公式6-10.基于观察z得到Z的经验方差
###
公式6-10.基于观察z得到Z的经验方差
##公式法:第一个要素
##
公式法:第一个要素
结合
[
等式6-2
](
https://www.safaribooksonline.com/library/view/feature-engineering-for/9781491953235/ch06.html#projection-coordinate
)
中
\\
(z_i
\\
)的定义,我们有以下公式用于最大化投影数据的方差。(我们从中删除分母n-1经验方差的定义,因为它是一个全局常数而不是影响价值最大化的地方。)
###公式6-12.主要组件的目标函数
###
公式6-12.主要组件的目标函数
###公式6-12.![公式6-12](../images/chapter_6/6-12.png)
###
公式6-12.![公式6-12](../images/chapter_6/6-12.png)
这里的约束迫使
\\
(w
\\
)与其自身的内积为1,这是相当于说矢量必须有单位长度。这是因为我们只有关心
\\
(w
\\
)的方向而不是
\\
(w
\\
)的大小。
\\
(w
\\
)的大小是1不必要的自由度,所以我们把它设置为任意的值。
##主要成分:矩阵-向量表达式
##
主要成分:矩阵-向量表达式
接下来是棘手的一步。
[
公式6-12
](
https://www.safaribooksonline.com/library/view/feature-engineering-for/9781491953235/ch06.html#pca1
)
中的平方和是相当的繁琐。它在矩阵矢量格式中会更清晰。我们能做到吗?答案是肯定的。关键在于平方和的同一性:一组平方项的和等于矢量的平方范数,其元素是那些项,这相当于向量的内积。有了这个标识,我们可以用矩阵向量表示法重写
[
方程6-12
](
https://www.safaribooksonline.com/library/view/feature-engineering-for/9781491953235/ch06.html#pca1
)
。
###公式6-4.主成分的目标函数,矩阵-矢量表达式
###
公式6-4.主成分的目标函数,矩阵-矢量表达式
###公式6-4.max\\(w^Tw\\),where \\(w^Tw = 1\\)
###
公式6-4.max\\(w^Tw\\),where \\(w^Tw = 1\\)
PCA的这种表述更明确地提出了目标:我们寻找一个输入最大化输出的标准的方向。这听起来很熟悉吗? 答案在于X的奇异值分解(SVD)。最优
\\
(w
\\
)是
\\
(X
\\
)的主要左奇异向量,它也是
\\
(X^TX
\\
)的主特征向量。投影据被称为原始数据的主要组成部分。
##主要组件的一般解决方案
##
主要组件的一般解决方案
这个过程可以重复。一旦找到第一个主要组成部分,我们就可以重新运行
[
公式6-14
](
https://translate.google.cn/#en/zh-CN/This%20process%20can%20be%20repeated.%20Once%20we%20find%20the%20first%20principal%20component%2C%20we%20can%0Arerun%20Equation%206-14%20with%20the%20added%20constraint%20that%20the%20new%20vector%20be%20orthogonal%20to%0Athe%20previously%20found%20vectors
)
,并添加新矢量与之正交的约束条件先前发现的向量.
###公式6-16.目标函数的k + 1个主成分
###
公式6-16.目标函数的k + 1个主成分
###公式6-16.max\\(w^Tw\\),where \\(w^Tw = 1 and w^Tw_1 = \ldots w^Tw_n = 0\\)
###
公式6-16.max\\(w^Tw\\),where \\(w^Tw = 1 and w^Tw_1 = \ldots w^Tw_n = 0\\)
该解是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中的多个矢量投影矩阵。
###公式6-18.PCA投影矩阵
###
公式6-18.PCA投影矩阵
$$ W = V_k $$
投影坐标矩阵易于计算,并且可以使用奇异向量彼此正交的事实来进一步简化。
###公式6-19.简单的PCA转换
###
公式6-19.简单的PCA转换
![
公式6-19
](
../images/chapter_6/6-19.png
)
投影值仅仅是第一个按比例缩放的前k个右向奇异向量k个奇异值。因此,整个PCA解决方案,组件和投影可以通过X的SVD方便地获得。
##实施PCA
##
实施PCA
PCA的许多推导涉及首先集中数据,然后采取特征协方差矩阵的分解。但实现PCA的最简单方法是通对中心数据矩阵进行奇异值分解。
###PCA实施步骤
###
PCA实施步骤
###公式6-20. 数据矩阵中心化
###
公式6-20. 数据矩阵中心化
\\
(C = X-1μ^T
\\
),其中1是包含全部1的列向量,并且μ是一列包含X的平均行数的向量。
###公式6-21. 计算SVD
###
公式6-21. 计算SVD
###\\(C = UΣV^T\\).
###
\\(C = UΣV^T\\).
###公式6-22. 主要组件
###
公式6-22. 主要组件
前
\\
(k
\\
)个主分量是
\\
(V
\\
)的前k列,即右奇异向量对应于k个最大奇异值。
###公式6-23. 转换数据
###
公式6-23. 转换数据
转换后的数据只是U的前k列。(如果需要whitening,然后通过逆奇异值对矢量进行缩放。这需要选择奇异值不为零。参见
[
“whitening和ZCA”
](
https://www.safaribooksonline.com/library/view/feature-engineering-for/9781491953235/ch06.html#sec-whitening
)
)
##PCA执行
##
PCA执行
让我们更好地了解PCA如何将其应用于某些图像数据。该
[
MNIST
](
http://yann.lecun.com/exdb/mnist/
)
数据集包含从0到9的手写数字的图像。原始图像是28 x 28像素。使用scikit-learn分发图像的较低分辨率子集,其中每个图像被下采样为8×8像素。原始数据在scikit学习有64个维度。我们应用PCA并使用第一个可视化数据集三个主要部分。
###例子6-1. scikit-learn数字数据集(MNIST数据集的一个子集)的主成分分析。
###
例子6-1. scikit-learn数字数据集(MNIST数据集的一个子集)的主成分分析。
>>> from sklearn import datasets
...
...
@@ -204,35 +204,35 @@ PCA的许多推导涉及首先集中数据,然后采取特征协方差矩阵
![
图片6-3
](
../images/chapter_6/6-3.png
)
###图6-3.PCA预测MNIST数据的子集。标记对应于图像标签。
###
图6-3.PCA预测MNIST数据的子集。标记对应于图像标签。
由于数字之间有相当多的重叠,因此很难清楚的将它们在投影空间中使用线性分类器分开。因此,如果任务是分类手写数字并且选择的模型是一个线性分类器,前三个主要组件不足以作为功能。尽管如此有趣的是只有3个可以捕获多少个64维数据集尺寸。
##白化和ZCA
##
白化和ZCA
由于目标函数中的正交性约束,PCA变换产生了很好的附带作用:转换后的特征不再相关。再换句话说,特征向量对之间的内积是零。这很容易使用奇异向量的正交性来证明这一点:结果是包含奇异值的平方的对角矩阵表示每个特征向量与其自身的相关性,也称为其L2规范。
有时候,将特征的比例标准化为1.在信号中是有用的处理方式,这就是所谓的
*白化*
。 它产生了一组与自身具有单位相关性,并且彼此之间的相关性为零的结果。在数学上,
*白化*
可以通过将PCA变换乘以反奇异值。
###公式6-24.PCA+白化
###
公式6-24.PCA+白化
![
公式6-24
](
../images/chapter_6/6-24.png
)
白化与维度降低无关; 可以独立执行不受其他的干扰。例如,零相分量分析(ZCA)(Bell和Sejnowski,1996)是一种与PCA密切相关的白化转化,但事实并非减少特征的数量。ZCA白化使用全套主要特征
\\
(V
\\
)没有减少,并且包括一个额外的乘法回到
\\
(V^T
\\
)。
###公式6-25.ZCA白化
###
公式6-25.ZCA白化
![
图片6-25
](
../images/chapter_6/6-25.png
)
简单的PCA投影(
[
公式6-19
](
https://www.safaribooksonline.com/library/view/feature-engineering-for/9781491953235/ch06.html#pca-projection
)
)在新特征中产生坐标空间,主要组成部分作为基础。这些坐标表示只有投影矢量的长度,而不是方向。乘以主要组件给我们的长度和方向。另一个有效解释是,多余的乘法将坐标旋转回原点原始特征空间。(V是正交矩阵,并且正交矩阵旋转他们的输入不拉伸或压缩)。所以ZCA白化产生的数据尽可能接近原始数据(欧几里德距离)。
##主成分分析的局限性
##
主成分分析的局限性
当使用PCA进行降维时,必须解决使用多少个主成分(k)的问题。像所有的超参数一样,这个数字可以根据最终模型的质量进行调整。但也有启发式算法不涉及高度的计算方法。
一种可能性是选择k来解释总方差的所需比例。(该选项在scikit-learn软件包的PCA中可用)投影到第k个分量上:
\\
(||Xv_k||^2=
\\
)
\\
(||u_kσ_k||^2=
\\
)=
\\
(σ_k^2
\\
),这是正方形
\\
(X
\\
)的第k个最大奇异值。a的奇异值的有序列表矩阵被称为其频谱。因此,为了确定要使用多少个组件,人们可以对数据矩阵进行简单的频谱分析并选择阈值保留足够的差异。
##基于占用方差的k选择
##
基于占用方差的k选择
要保留足够的组件覆盖数据总方差的80%,请这样选择k:$frac{
\s
um_{i=1}^{k}σ_i^2}{
\s
um_{i=1}^{d}σ_i^2}
\g
eq 8$
...
...
@@ -246,7 +246,7 @@ PCA在计算上是繁杂的的。它依赖于SVD,这是一个昂贵的过程
最后,最好不要将PCA应用于原始计数(字数,音乐播放次数,电影观看次数等)。这是因为这种计数通常包含在内大的异常值。(这个概率非常高,有一个粉丝在那里观看了“指环王”的314,582次,这让其余的人望而生畏计数)。正如我们所知,PCA在特征中查找线性相关性。相关性和方差统计对大的异常值非常敏感; 单一大量的数据可能会改变很多。 所以,首先修剪是个好主意大数值的数据(“
[
基于频率的滤波
](
https://www.safaribooksonline.com/library/view/feature-engineering-for/9781491953235/ch03.html#sec-freq-filter
)
”)或应用缩放变换如tf-idf(
[
第4章
](
https://www.safaribooksonline.com/library/view/feature-engineering-for/9781491953235/ch04.html#chap-tfidf
)
)或日志转换(“
[
日志转换
](
https://www.safaribooksonline.com/library/view/feature-engineering-for/9781491953235/ch02.html#sec-log-transform
)
”)。
##用例
##
用例
PCA通过查找线性相关模式来减少特征空间维度功能之间。由于涉及SVD,PCA计算数千个功能的代价很高。但是对于少量的实值特征而言,它非常重要值得尝试。
...
...
@@ -268,11 +268,11 @@ PCA也经常用于金融建模。在这些用例中,它作为一种类型工
许多深度学习模型使用PCA或ZCA作为预处理步骤,但事实并非如此总是显示是必要的。在"
[
Factored 3-Way Restricted Boltzmann Machines forModeling Natural Images
](
https://translate.google.cn/#en/zh-CN/Many%20deep%20learning%20models%20use%20PCA%20or%20ZCA%20as%20a%20pre-processing%20step%2C%20though%20it%20is%20not%0Aalways%20shown%20to%20be%20necessary.%20In%20%22Factored%203-Way%20Restricted%20Boltzmann%20Machines%20for%0AModeling%20Natural%20Images%2C%E2%80%9D%20Ranzato%20et%20al.%20remark%2C%20%E2%80%9CWhitening%20is%20not%20necessary%20but%0Aspeeds%20up%20the%20convergence%20of%20the%20algorithm.%22%20In%20%22An%20Analysis%20of%20Single-Layer%20Networks%0Ain%20Unsupervised%20Feature%20Learning%2C%E2%80%9D%20Coates%20et%20al.%20find%20that%20ZCA%20whitening%20is%20helpful%0Afor%20some%20models%2C%20but%20not%20all.%20(Note%20the%20models%20in%20this%20paper%20are%20unsupervised%20feature%0Alearning%20models.%20So%20ZCA%20is%20used%20as%20a%20feature%20engineering%20method%20for%20other%20feature%0Aengineering%20methods.%20Stacking%20and%20chaining%20of%20methods%20is%20commonplace%20in%20machine%0Alearning%20pipelines.
)
)“,Ranzato et al,评论,“白化不是必要的,但加快了算法的收敛速度。“在In "
[
An Analysis of Single-Layer Networks in Unsupervised Feature Learning
](
http://ai.stanford.edu/~ang/papers/aistats11-AnalysisSingleLayerUnsupervisedFeatureLearning.pdf
)
”中,Coates等人 发现ZCA美白是有帮助的对于某些号,但不是全部。(请注意,本文中的模型是无监督功能学习模型。 所以ZCA被用作其他功能的特征方法工程方法。方法的堆叠和链接在机器中很常见学习管道。)
##总结
##
总结
这结束了对PCA的讨论。关于PCA需要记住的两件事是其机制(线性投影)和目标(最大化方差预计数据)。该解决方案涉及协方差的特征分解矩阵,它与数据矩阵的SVD密切相关。人们还可以记住PCA的精神图像将数据挤压成像蓬松一样的煎饼可能。PCA是模型驱动特征工程的一个例子。(应该立即怀疑当一个目标函数进入时,一个模型潜伏在背景中场景)。这里的建模假设是方差充分代表了包含在数据中的信息。等价地,该模型寻找线性特征之间的相关性。这在几个应用程序中用于减少相关性或在输入中找到共同因素。PCA是一种众所周知的降维方法。但它有其局限性作为高计算成本和无法解释的结果。它作为一个预先定义好处理步骤,特别是在特征之间存在线性相关时。当被看作是一种消除线性相关的方法时,PCA与其相关美白的概念。其表兄ZCA以可解释的方式使数据变白,但是不会降低维度。
##参考书目
##
参考书目
Bell, Anthony J. and Terrence J. Sejnowski. 1996. “Edges are the ‘Independent
Components’ of Natural Scenes.” Proceedings of the Conference on Neural Information Processing Systems (NIPS) .
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录