降维(Dimensionality Reduction) :
一、 降维目的:
目的一:数据压缩(Data Compression)
目的二:数据可视化(Visualization)
二、 主成分分析(PCA)
主成分分析问题的描述:
算法:
选择主成分的数量,即k值:
压缩后的复原:
三、 错误的应用场景:
降维(Dimensionality Reduction) :
一、 降维目的:
目的一:数据压缩(Data Compression)
数据压缩不仅可以节省内存或磁盘,还可以加快学习算法。
可以把任何维度的数据降到任何想要的维度, 例如将 1000 维的特征降至 100 维。
目的二:数据可视化(Visualization)
50 维的数据不能可视化,但将其降至 2 维,便可以将其可视化。
这样做的问题在于,降维算法只负责减少维数,新特征的意义必须由我们自己去发现了。
二、 主成分分析(PCA)
主成分分析(PCA)是最常见的降维算法。
在 PCA 中,要做的是找到一个方向向量(Vector direction),当把所有的数据都投射到该向量上时,希望投射平均均方误差能尽可能地小。方向向量是一个经过原点的向量,而投射误差是从特征向量向该方向向量作垂线的长度。
主成分分析问题的描述:
将 n 维数据降至 k 维,目标是找到向量 u(1),u(2),...,u(k)使得总的投射误差最小。
PCA 将 n 个特征降维到 k 个, 可以用来进行数据压缩, 如果 100 维的向量最后可以用 10维来表示,那么压缩率为 90%。
同样图像处理领域的 KL 变换使用 PCA 做图像压缩。但 PCA 要保证降维后,数据的特性损失最小。
PCA 技术的一大好处是对数据进行降维处理。我们可以对新求出的“主元” 向量的重要性进行排序,根据需要取前面最重要的部分,将后面的维数省去,可以达到简化模型或是数据压缩的效果。同时最大程度的保持了原有数据的信息。
PCA 技术的一个很大的优点是,它是完全无参数限制的。在 PCA 的计算过程中完全不需要人为设定参数或是根据任何经验对计算进行干预, 最后的结果只与数据相关, 对用户是独立的。
但是,这也可以看作是缺点。如果用户对观测对象有一定的先验知识,掌握了数据的一些特征, 却无法通过参数化等方法对处理过程进行干预, 可能会得不到预期的效果。
算法:
1、均值归一化;
2、 计算矩阵;
3、计算矩阵 的特征值和特征向量;
4、根据特征值排序,选出前k个对应的特征向量。
5、将每个样例和k个特征向量做內积,即得到降维后的k个特征。
选择主成分的数量,即k值:
压缩后的复原:
PCA 作为压缩算法,可能需要把 1000 维的数据压缩 100 维特征,或具有三维数据压缩到一二维表示。
所以,如果这是一个压缩算法,应该能回到这个压缩表示,回到你原有的高维数据的一种近似。
这是一个漂亮的与原始数据相当相似。所以,这就是从低维表示 Z 回到未压缩的时表示。
我们得到数据的一个近似的原始数据 X,也把这个过程称为重建原始数据。
三、 错误的应用场景:
错误一: 将其用于减少过拟合(减少特征的数量)。这样做非常不好,不如尝试归一化处理。原因在于主要成分分析只是近似地丢弃掉一些特征, 它并不考虑任何与结果变量有关的信息, 因此可能会丢失非常重要的特征。而归一化处理会考虑到结果变量,不会丢掉重要的数据。
错误二:默认地将主要成分分析作为学习过程中的一部分,这虽然很多时候有效果,最好还是从所有原始特征开始,只在有必要的时候(算法运行太慢或者占用太多内存)才考虑采用主成分分析。