降维(Dimensionality Reduction)

谁践踏了优雅 2023-02-27 13:50 102阅读 0赞

目录

  • 目标 I:数据压缩
  • 目标Ⅱ:可视化
  • 主成分分析问题规划1
  • 主成分分析问题规划2
  • 主成分数量选择
  • 压缩重现
  • 应用.PCA.的建议

目标 I:数据压缩

数据压缩使得的数据占用空间变小,还能对学习算法进行加速。
在这里插入图片描述
特征之间高度相关。
在这里插入图片描述
这些数据大概分布在一个平面。
在这里插入图片描述

目标Ⅱ:可视化

降维的另一个应用:使数据可视化。

假设我们有50个维度的特征
在这里插入图片描述
现在降到2维,但是我们常要弄清出降维后的特征大概代表什么
在这里插入图片描述
通过降维后观察可视化图像,可知降维后的特征大概代表什么
在这里插入图片描述

主成分分析问题规划1

主要成分分析(PCA)方法:

PCA就是想要找到一个低维平面,在下面的例子是一条直线,然后将数据投影在上面,使这些蓝色小线段(投影误差)长度平方最小。

在应用PCA之前常规的做法是先进行均值归一化和特征规范化,使得特征量之间的均值为0,并且其数值在可比较的范围内。
在这里插入图片描述
正式写一下PCA问题:

PCA做的就是,如果想将数据从N维降到K维,我们需要寻找K个方向(向量)对数据进行投影,来最小化投影误差。
在这里插入图片描述
另外PCA不是线性回归:

线性回归求的是y方向上的最小值,PCA求的是点到投影点的距离最小值。
在这里插入图片描述
对所有特征同等对待:
在这里插入图片描述

主成分分析问题规划2

在进行PCA之前,应先预处理数据,均值归一化或特征缩放。
在这里插入图片描述
如何计算 u 和 z 呢?
在这里插入图片描述
PCA具体过程:

①计算协方差(Σ)

②计算 Σ 的特征向量:

在Octave中,用 [U,S,V] = svd(Σ),svd 代表奇异值分解,(在Octave中,用 eig(Σ) 也能计算,虽然有一点别的差别,但是结果相同),在输出的 3 个矩阵中,我们需要的是 U(U 是n*n的矩阵,它的列就是我们需要的向量u(i),需要降成 k 维,就取前 k 列)。
在这里插入图片描述
③获取 U 矩阵的前 k 列,取得的降维后的矩阵叫做 Ureduce
④降维后的新特征,Z = UreduceTX
在这里插入图片描述
总之,这是PCA算法:

进行均值归一化后,为确保每一个特征都是均值为0的任选特征缩放,你能够做特征的缩放是,你的特征能够呈现不同范围的值。

预处理完之后,我们计算这个载体矩阵 Σ 。

然后得到U,取出前要降维矩阵的前 k 列,Ureduce 。

最后计算降维后的特征 Z 。
在这里插入图片描述

主成分数量选择

假设 K 从 1 开始,直到计算出来式子(平均投影误差的平方除以数据的总方差,它的结果为数据的波动程度,波动越小越好)的值满足要求,我们就选择该 K 的值。

另外的说法就是有多少方差性被保留。
在这里插入图片描述
实现算法:

第一种是左边的依次计算。

第二种是右边在Octave中,利用 S 矩阵计算,该方式更加高效。
在这里插入图片描述
总结,通过报告方差被保留的百分比,更易理解降维后的数据是如何逼近原始数据的。
在这里插入图片描述

压缩重现

把降维的数据还原回原理维度的数据会有损失。

因为还原后的数据只是原来数据的投影,所以具有误差。
在这里插入图片描述

应用.PCA.的建议

PCA可以减少硬盘存储空间、提高算法的速度,如果是降到2或3维,还可以可视化。

下面的是提高算法速度:

PCA只运用在训练集,不用在交叉验证集和测试集。
在这里插入图片描述
PCA主要应用:

数据压缩,加快算法速度,可视化…
在这里插入图片描述
误用:

使用PCA降维去避免过拟合,这是一种不好的做法,不建议这样做(虽然也可以),我们可以使用正则化更好的避免过拟合。

PCA会舍掉一些信息,它扔掉或减少数据的维度,不关心 y 的值是什么,所以它可能会丢掉一些有价值的信息。
在这里插入图片描述
在实现PCA之前,首先建议直接做你想做的事,首先考虑原始数据,只有这么做达不到目的的情况下,才考虑使用PCA,或者数据的维数很大,算法运行太慢,占用很多空间和内存,才需要去考虑。
在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,102人围观)

还没有评论,来说两句吧...

相关阅读

    相关 PCA

    概念 在机器学习中经常会碰到一些高维的数据集,而在高维数据情形下会出现数据样本稀疏,距离计算等困难,这类问题是所有机器学习方法共同面临的严重问题,称之为“ 维度灾难 ”。

    相关 数据

    伴随ICT(通信与信息技术)和互联网技术的不断发展与更新,人们收集和获得数据的能力越来越强。而这些数据已呈现出维数高、规模大和结构复杂等特性。如何利用这些数据,发挥其价值,引起