14 降维
内容:
14.1 数据压缩
14.2 数据可视化
14.3 主成分分析法(PCA)
14.4 选择主成分的数量
14.5 压缩重现
14.6 应用PCA建议
14.1 数据压缩
上一章讨论了第一种类型的无监督学习:聚类算法。下面讨论第二种类型的无监督学习:降维
- 为什么降维:选的特征中有些特征是重复的,所以需要降维。比如对于实物来说,你选了两个特征:用厘米表示的长度和用英寸表示的长度。
-
如何降维
给出将二维降到一维的例子
注意:降到一维的z轴是上面的直角坐标系中的绿色线。
同理将三维降至二维:就是将三维向量投射到一个二维的平面上
依照此方法我们就可以去除冗余特征,例如将1000维的降至100维。
14.2 数据可视化
- 数据可视化:降维将特征数减少,如果将50维的特征可视化(即理解这些特征能表示什么),是很难的,但是如果将其降到低维度(例如二维),便可将其可视化,了解特征所表现的具体含义以及应用。
14.3 主成分分析法(PCA)Principal Component Analysis
主成分分析法是最常见的降维算法
-
原理:我们要做的是找到一个方向向量(Vector direction),当我们把所有的数据都投射到该向量上时,我们希望投射平均均方误差能尽可能地小。方向向量是一个经过原点的向量,而投射误差是从特征向量向该方向向量作垂线的长度。
-
主成分分析法与线性回归
主成分分析最小化的是投射误差(Projected Error),而线性回归尝试的是最小化预测误差。线性回归的目的是预测结果,而主成分分析不作任何预测。
左边的是线性回归的误差(垂直于横轴投影),右边则是要成分分析的误差(垂直于红线投影)。
- 用处:数据压缩
PCA 将𝑛个特征降维到𝑘个,可以用来进行数据压缩,如果 100 维的向量最后可以用 10维来表示,那么压缩率为 90%。 - 优点:完全无参数限制的。在 PCA 的计算过程中完全不需要人为的设定参数或是根据任何经验模型对计算进行干预,最后的结果只与数据相关,与用户是独立的。
- 缺点: 如果用户对观测对象有一定的先验知识,掌握了数据的一些特征,却无法通过参数化等方法对处理过程进行干预,可能会得不到预期的效果,效率也不高
-
算法
14.4 选择主成分的数量
主要成分分析是减少投射的平均均方误差
希望在平均均方误差与训练集方差的比例尽可能小的情况下选择尽可能小的𝑘值。如果我们希望这个比例小于 1%,就意味着原本数据的偏差有 99%都保留下来了,如果我们选择保留 95%的偏差,便能非常显著地降低模型中特征的维度了。
- 选择 k 值方法一
我们可以先令𝑘 = 1,然后进行主要成分分析,获得𝑈𝑟𝑒𝑑𝑢𝑐𝑒和𝑧,然后计算比例是否小于1%。如果不是的话再令𝑘 = 2,如此类推,直到找到可以使得比例小于 1%的最小𝑘 值(原因是各个特征之间通常情况存在某种相关性)。 -
选择 k 值方法二
其中的𝑆是一个𝑛 × 𝑛的矩阵,只有对角线上有值,而其它单元都是 0,我们可以使用这个矩阵来计算平均均方误差与训练集方差的比例:
当我们在 Octave 中调用“svd”函数的时候,我们获得三个参数:[U, S, V] = svd(sigma)。
在压缩过数据后,我们可以采用如下方法来近似地获得原有的特征:
14.5 压缩重现
PCA是将带高维特征𝑥和映射到这的低维表示𝑧,此节讲的是将压缩以后的数据恢复成原来的数据,采取这些低维表示𝑧,映射到备份到一个近似你原有的高维数据。
表示到具体例子上就是左图是压缩过程,右图是经过重现以后的数据
14.6 主程序分析法的应用建议
应用PCA降维是很好的方法。
但是应用PCA防止过拟合是不正确的选择,应用正正则化防止过拟合。原因在于主要成分分析只是近似地丢弃掉一些特征,它并不考虑任何与结果变量有关的信息,因此可能会丢失非常重要的特征。然而当我们进行正则化处理时,会考虑到结果变量,不会丢掉重要的数据。
在学习过程中,最好还是先从原有数据据开始,当这样不能很好的解决问题时(算法运行太慢或者占用太多内存)再考虑使用PCA。