机器学习笔记12 降维 1.1 目标1:数据压缩 Data Compression 1.2 目标2:可视化 Data visualization 1.3 主成分分析问题描述 Principal Component Analysis problem formulation 1.4 重建原始特征 Reconstruction from compressed representation 1.5 主成分数量选择 Choosing the number of principal components 1.6 PCA的应用建议 Advice for applying PCA

1.1 目标1:数据压缩 Data Compression

现在来介绍第二个无监督学习:降维,降维的第一个作用就是压缩数据,允许我们使用较少的内存或磁盘空间,也加快算法速度

当我们发现特征中有一些特征是冗余的(比如:特征1是厘米,特征2是英尺),那么我们就需要通过降维来压缩数据

将二维降到一维:

机器学习笔记12
降维
1.1 目标1:数据压缩 Data Compression
1.2 目标2:可视化 Data visualization
1.3 主成分分析问题描述 Principal Component Analysis problem formulation
1.4 重建原始特征 Reconstruction from compressed representation
1.5 主成分数量选择 Choosing the number of principal components
1.6 PCA的应用建议 Advice for applying PCA

将三维降为二维:

机器学习笔记12
降维
1.1 目标1:数据压缩 Data Compression
1.2 目标2:可视化 Data visualization
1.3 主成分分析问题描述 Principal Component Analysis problem formulation
1.4 重建原始特征 Reconstruction from compressed representation
1.5 主成分数量选择 Choosing the number of principal components
1.6 PCA的应用建议 Advice for applying PCA

1.2 目标2:可视化 Data visualization

降维的第二个作用就是可视化,可以将高维的数据进行可视化

比如以下这个例子,特征为各国的一些信息,假设有50个特征,那么我们就很难将50维的图像构建出来

机器学习笔记12
降维
1.1 目标1:数据压缩 Data Compression
1.2 目标2:可视化 Data visualization
1.3 主成分分析问题描述 Principal Component Analysis problem formulation
1.4 重建原始特征 Reconstruction from compressed representation
1.5 主成分数量选择 Choosing the number of principal components
1.6 PCA的应用建议 Advice for applying PCA

所以我们可以通过降维对数据进行可视化

机器学习笔记12
降维
1.1 目标1:数据压缩 Data Compression
1.2 目标2:可视化 Data visualization
1.3 主成分分析问题描述 Principal Component Analysis problem formulation
1.4 重建原始特征 Reconstruction from compressed representation
1.5 主成分数量选择 Choosing the number of principal components
1.6 PCA的应用建议 Advice for applying PCA  机器学习笔记12
降维
1.1 目标1:数据压缩 Data Compression
1.2 目标2:可视化 Data visualization
1.3 主成分分析问题描述 Principal Component Analysis problem formulation
1.4 重建原始特征 Reconstruction from compressed representation
1.5 主成分数量选择 Choosing the number of principal components
1.6 PCA的应用建议 Advice for applying PCA

1.3 主成分分析问题描述 Principal Component Analysis problem formulation

最常见的降维算法是主成分分析(PCA)。PCA 要做的是找到一个方向向量(Vector direction),把所有的数据都投射到该向量上并且投射平均均方误差要尽可能小。方向向量是一个经过原点的向量,投射误差是从特征向量向该方向向量所作垂线的长度

如下图,我们就认为红色直线就是PCA要找的向量,因为投射平均均方误差都比较小,而不是选择洋红色直线作为向量

机器学习笔记12
降维
1.1 目标1:数据压缩 Data Compression
1.2 目标2:可视化 Data visualization
1.3 主成分分析问题描述 Principal Component Analysis problem formulation
1.4 重建原始特征 Reconstruction from compressed representation
1.5 主成分数量选择 Choosing the number of principal components
1.6 PCA的应用建议 Advice for applying PCA

更一般化的就是要将n维数据降至k维,目标是找到向量u(1) ,u(2) ,...,u(k) 使得总的投射误差最小,比如3维降到2维就是找到向量u(1) ,u(2),将所有数据投射到由向量u(1) ,u(2)构成的平面上去

机器学习笔记12
降维
1.1 目标1:数据压缩 Data Compression
1.2 目标2:可视化 Data visualization
1.3 主成分分析问题描述 Principal Component Analysis problem formulation
1.4 重建原始特征 Reconstruction from compressed representation
1.5 主成分数量选择 Choosing the number of principal components
1.6 PCA的应用建议 Advice for applying PCA

可能从下图来看,会觉得PCA和线性回归有点相似,其实并不是的

PCA最小化的是投射误差,不作任何预测。线性回归最小化的是预测误差,目的是预测结果

左图的是线性回归的误差(垂直于横轴投影),右图则是主要成分分析的误差(垂直于斜线投影)

机器学习笔记12
降维
1.1 目标1:数据压缩 Data Compression
1.2 目标2:可视化 Data visualization
1.3 主成分分析问题描述 Principal Component Analysis problem formulation
1.4 重建原始特征 Reconstruction from compressed representation
1.5 主成分数量选择 Choosing the number of principal components
1.6 PCA的应用建议 Advice for applying PCA

现在就详细的介绍一下PCA的算法

第一步需要对特征做均值归一化,计算出所有特征的均值,然后令 xj = xj − μj 。如果特征是在不同的数量级上,还需要将其除以 最大值减去最小值 或者除以标准差 σ2

机器学习笔记12
降维
1.1 目标1:数据压缩 Data Compression
1.2 目标2:可视化 Data visualization
1.3 主成分分析问题描述 Principal Component Analysis problem formulation
1.4 重建原始特征 Reconstruction from compressed representation
1.5 主成分数量选择 Choosing the number of principal components
1.6 PCA的应用建议 Advice for applying PCA

第二步需要计算协方差矩阵(covariance matrix) Σ,(读音:sigma),公式为:机器学习笔记12
降维
1.1 目标1:数据压缩 Data Compression
1.2 目标2:可视化 Data visualization
1.3 主成分分析问题描述 Principal Component Analysis problem formulation
1.4 重建原始特征 Reconstruction from compressed representation
1.5 主成分数量选择 Choosing the number of principal components
1.6 PCA的应用建议 Advice for applying PCA

第三步需要计算协方差矩阵 Σ 的特征向量(eigenvectors),在 Matlab 中调用 [U,S,V] = svd(sigma) 可以直接求得特征向量 U(对于一个 n × n 维度的矩阵,U 是一个由 “与数据之间最小投射误差的方向向量” 构成的矩阵)

机器学习笔记12
降维
1.1 目标1:数据压缩 Data Compression
1.2 目标2:可视化 Data visualization
1.3 主成分分析问题描述 Principal Component Analysis problem formulation
1.4 重建原始特征 Reconstruction from compressed representation
1.5 主成分数量选择 Choosing the number of principal components
1.6 PCA的应用建议 Advice for applying PCA

如果希望将数据从 n 维降至 k 维,只需要从 U 中选取前 k 个向量,获得一个 n × k 维度的矩阵,用Ureduce 表示

降维后新特征向量 z(i)的计算公式为:机器学习笔记12
降维
1.1 目标1:数据压缩 Data Compression
1.2 目标2:可视化 Data visualization
1.3 主成分分析问题描述 Principal Component Analysis problem formulation
1.4 重建原始特征 Reconstruction from compressed representation
1.5 主成分数量选择 Choosing the number of principal components
1.6 PCA的应用建议 Advice for applying PCA

机器学习笔记12
降维
1.1 目标1:数据压缩 Data Compression
1.2 目标2:可视化 Data visualization
1.3 主成分分析问题描述 Principal Component Analysis problem formulation
1.4 重建原始特征 Reconstruction from compressed representation
1.5 主成分数量选择 Choosing the number of principal components
1.6 PCA的应用建议 Advice for applying PCA

最后总结一下PCA的优点:

<1> 对数据进行降维处理,可以通过降维从而简化模型

<2> 它是完全无参数限制的,最后的结果只与数据相关

1.4 重建原始特征 Reconstruction from compressed representation

在之前介绍了将数据从高维降维到低维,其实在给定降维后的数据时,我们还可以重建降维前的数据

我们是通过 z = UreduceT * x 来获得降维后的数据,可想而知我们就可以通过 xappox = Ureduce ⋅ z 来重建降维前的数据,这时就有 xappox ≈ x

机器学习笔记12
降维
1.1 目标1:数据压缩 Data Compression
1.2 目标2:可视化 Data visualization
1.3 主成分分析问题描述 Principal Component Analysis problem formulation
1.4 重建原始特征 Reconstruction from compressed representation
1.5 主成分数量选择 Choosing the number of principal components
1.6 PCA的应用建议 Advice for applying PCA

1.5 主成分数量选择 Choosing the number of principal components

主成分分析是最小化投射的平均均方误差,那怎么选择适当降维目标 k 值(即主成分的数量)呢?

我们的目标是:在『平均均方误差与训练集方差的比例尽可能小』的情况下,选择尽可能小的 k 值

如果平均均方误差与训练集方差的比例小于 1%,就意味着有 99% 的原本数据都保留下来了。同理,比例为 5%,对应95%的原数据,比例10%,对应90%的原数据

通常原数据比例在 95%到99% 是最常用的取值范围(对于许多数据集,通常可以在保留大比例原数据的同时大幅降低数据的维度。这是因为大部分原数据中的许多特征变量都是高度相关的)

机器学习笔记12
降维
1.1 目标1:数据压缩 Data Compression
1.2 目标2:可视化 Data visualization
1.3 主成分分析问题描述 Principal Component Analysis problem formulation
1.4 重建原始特征 Reconstruction from compressed representation
1.5 主成分数量选择 Choosing the number of principal components
1.6 PCA的应用建议 Advice for applying PCA

算法的具体流程:

先令 k = 1,然后进行主成分分析,获得Ureduce 、z和xappox,最后通过左图公式计算比例是否小于 1% ,如果比例大于 1% 的话,再令k = 2,如此类推,直到找到可以使得比例小于 1%的最小k 值

机器学习笔记12
降维
1.1 目标1:数据压缩 Data Compression
1.2 目标2:可视化 Data visualization
1.3 主成分分析问题描述 Principal Component Analysis problem formulation
1.4 重建原始特征 Reconstruction from compressed representation
1.5 主成分数量选择 Choosing the number of principal components
1.6 PCA的应用建议 Advice for applying PCA

除了以上这个方法,还有另一个方法:

通过在 Matlab 中调用 [U, S, V] = svd(sigma) 来获得对角矩阵S(对角矩阵S的大小与Σ一致),再利用下面的公式直接计算平均均方误差与训练集方差的比例

机器学习笔记12
降维
1.1 目标1:数据压缩 Data Compression
1.2 目标2:可视化 Data visualization
1.3 主成分分析问题描述 Principal Component Analysis problem formulation
1.4 重建原始特征 Reconstruction from compressed representation
1.5 主成分数量选择 Choosing the number of principal components
1.6 PCA的应用建议 Advice for applying PCA

机器学习笔记12
降维
1.1 目标1:数据压缩 Data Compression
1.2 目标2:可视化 Data visualization
1.3 主成分分析问题描述 Principal Component Analysis problem formulation
1.4 重建原始特征 Reconstruction from compressed representation
1.5 主成分数量选择 Choosing the number of principal components
1.6 PCA的应用建议 Advice for applying PCA

1.6 PCA的应用建议 Advice for applying PCA

对于PCA的应用,假设对训练集(x,y) (100×100 的图像,特征 x 的维度为100×100=10000)采用监督学习的方式去预测,在预测前对特征进行PCA处理,将数据压缩至 1000 个特征,x 转变为 z,重新组建成训练集(z,y),再进行预测

机器学习笔记12
降维
1.1 目标1:数据压缩 Data Compression
1.2 目标2:可视化 Data visualization
1.3 主成分分析问题描述 Principal Component Analysis problem formulation
1.4 重建原始特征 Reconstruction from compressed representation
1.5 主成分数量选择 Choosing the number of principal components
1.6 PCA的应用建议 Advice for applying PCA

在PCA的应用上,建议运用在压缩和可视化上

机器学习笔记12
降维
1.1 目标1:数据压缩 Data Compression
1.2 目标2:可视化 Data visualization
1.3 主成分分析问题描述 Principal Component Analysis problem formulation
1.4 重建原始特征 Reconstruction from compressed representation
1.5 主成分数量选择 Choosing the number of principal components
1.6 PCA的应用建议 Advice for applying PCA

不建议将其运用在防止过拟合上,虽然可能会有用,但是特征减少了就有可能失去一些有用的信息了。对于防止过拟合,可以采用加入的正则化的方式去解决

机器学习笔记12
降维
1.1 目标1:数据压缩 Data Compression
1.2 目标2:可视化 Data visualization
1.3 主成分分析问题描述 Principal Component Analysis problem formulation
1.4 重建原始特征 Reconstruction from compressed representation
1.5 主成分数量选择 Choosing the number of principal components
1.6 PCA的应用建议 Advice for applying PCA

在一些项目上的运用,不建议一开始上来就使用PCA,最好还是从使用原始特征开始,在有必要的时候(比如:算法运行太慢或者占用太多内存)才考虑采用 PCA

机器学习笔记12
降维
1.1 目标1:数据压缩 Data Compression
1.2 目标2:可视化 Data visualization
1.3 主成分分析问题描述 Principal Component Analysis problem formulation
1.4 重建原始特征 Reconstruction from compressed representation
1.5 主成分数量选择 Choosing the number of principal components
1.6 PCA的应用建议 Advice for applying PCA