吴恩达机器学习笔记(十三)——降维

1.降维应用:数据压缩

降维首先是可以用于数据压缩的,例如将2维数据降维成一维数据,就可以将存储量减小一半,如下图所示:
吴恩达机器学习笔记(十三)——降维_第1张图片
又如下面从三维降至二维的数据所示:
吴恩达机器学习笔记(十三)——降维_第2张图片

2.降维应用:可视化

降维还可以将原本无法可视化的数据通过降维从而进行可视化。
如下图是各国的各项数据,因为特征较多,因此无法进行可视化:
吴恩达机器学习笔记(十三)——降维_第3张图片
通过降维成二维数据,我们就可以进行可视化了,如下图所示:
吴恩达机器学习笔记(十三)——降维_第4张图片
吴恩达机器学习笔记(十三)——降维_第5张图片

3.PCA问题规划1

首先从视觉上感受一下PCA的效果:
吴恩达机器学习笔记(十三)——降维_第6张图片
假设我们已经通过算法选择了要投影的线是橙色那条,那么我们可以用蓝色的线绘制出它的投影误差,我们要做的其实就是时投影误差尽可能地小
为了作出对比,我们绘制了下面一条粉红色的线,可以见到它的投影误差则是比较大的。
吴恩达机器学习笔记(十三)——降维_第7张图片
下面进行一些比较正式的定义:
吴恩达机器学习笔记(十三)——降维_第8张图片
假如我们想从2维压缩成1维:那么就需要找到一个向量(方向没有关系),使得数据的投影误差最小。

进行推广,我们可以得到多维压缩的定义:
吴恩达机器学习笔记(十三)——降维_第9张图片
假如我们想从n维压缩成k维:那么就需要找到k个向量u(1)、u(2)、…、u(k),使得数据的投影误差最小。

下面是展示了线性回归和PCA的区别,如下图所示:(左图代表线性回归,右图代表PCA
吴恩达机器学习笔记(十三)——降维_第10张图片

4.PCA问题规划2

在我们进行PCA处理前,我们首先需要对数据进行预处理。
其中我们需要将数据进行均值归一化,也就是进行下列操作:
吴恩达机器学习笔记(十三)——降维_第11张图片
下面介绍具体如何使用PCA算法:
现在假设我们需要将n维度的数据降成k维度
1、首先要先计算出协方差,具体表达式如下:(其中σ是一个n*n的矩阵)
吴恩达机器学习笔记(十三)——降维_第12张图片
2、通过SVD函数计算出协方差σ的特征向量
在这里插入图片描述
3、我们需要使用的是U矩阵(n*n的矩阵),如下图所示
吴恩达机器学习笔记(十三)——降维_第13张图片
4、因为我们想降至k维,因此我们就要从U矩阵中取出u(1)~ u(k),从而构建新的矩阵(n*k的矩阵),称为Ureduce
吴恩达机器学习笔记(十三)——降维_第14张图片

5、最后我们要将n维的x降成k维的z,其中z=(Ureduce)TX
吴恩达机器学习笔记(十三)——降维_第15张图片

5.压缩重现

上一小节中我们通过下面的方法得到压缩后的x
吴恩达机器学习笔记(十三)——降维_第16张图片
基于此,我们可以通过下列的公式来得到Xapprox(与原来的x会存在一定的误差):
吴恩达机器学习笔记(十三)——降维_第17张图片

6.主成分数量的选择

在利用PCA算法的时候,我们需要确定降至的维度k,这个k同样也被称为数据主要成分的数量或者数据的主要成分保留的数量,这一小节就来讨论一下如何选择k。

PCA算法主要做的工作就是最小化average squard projection error,也就是要最小化下面这个表达式:
吴恩达机器学习笔记(十三)——降维_第18张图片
同时,我们还需要定义total variation(可以理解为样本和全零点之间的举例),也就是下面这个表达式:
吴恩达机器学习笔记(十三)——降维_第19张图片
当我们想要选择k时,通用的原则是选择下面不等式成立的最小k,如下所示:
吴恩达机器学习笔记(十三)——降维_第20张图片
并且,我们也可以调整0.01这个数字来调整被保留的完整性。上式就表示百分之99的方差被保留了下来。

下面介绍如何完成k选择的算法:

  1. 我们从k=1开始,使用PCA算法计算这些值
    吴恩达机器学习笔记(十三)——降维_第21张图片

  2. 然后检查不等式是否成立
    吴恩达机器学习笔记(十三)——降维_第22张图片

  3. 如果不成立就换k=2,k=3,…,如此继续。假设到k=17时成立了,那么就选择k=17

如此可见,上面这个算法比较麻烦,好在svd方法提供了简便的计算方式。

  1. 首先我们通过svd算法得到相应的矩阵
    在这里插入图片描述

  2. S矩阵是一个对角矩阵,只有对角线上的数字非零
    吴恩达机器学习笔记(十三)——降维_第23张图片

  3. 然后我们就开始计算过程,我们可以用下面的表达式代替计算之前的不等式。假设我们计算k=3,分子就是S11、S22、S33求和,分母是全部对角线元素求和。我们要检查的就是它是否小于等于0.01,同样是选择能够满足不等式的最小k
    吴恩达机器学习笔记(十三)——降维_第24张图片
    如果这样做,你就只需要调用一次svd,节省了许多时间

7.应用PCA的建议

下面则是介绍了PCA算法在较少数据维度的应用,如下图所示:
吴恩达机器学习笔记(十三)——降维_第25张图片
基本思想:将原本高维度的数据x降至低维度的z,然后采用z建立模型进行训练。

需要特别注意以下几个方面:

  1. PCA算法只能运行在训练集上,在交叉验证集或测试集中同样也是使用训练集建立的映射。(也就是在后面进行预测时要使用测试集计算出来的Ureduce
  2. 不要使用PCA去防止过拟合,因此PCA可能会损失一些重要的特征,使用正则化的方法去防止过拟合更有效果
  3. 如果能够在不使用PCA的情况下计算得到结果,那么就不要使用PCA。如果没办法计算得到(运行性太慢等等情况),再使用PCA。

你可能感兴趣的:(吴恩达机器学习笔记,pca降维,吴恩达,SVD,算法)