吴恩达机器学习笔记(12)——降维(Dimensionality Reduction)
这里介绍第二种无监督学习方法,叫做降维(Dimensionality Reduction)
一、目标1:数据压缩Data Compression
由于可能存在许多冗余特征量,或者说特征高度相关,所以需要减少特征量的数量。
so如果允许我们通过投影这条绿线上所有的原始样本,来近似原始的数据集,那么我只需要用一个数就能表示每个训练样本的位置,这样就能把内存的需求减半,同时这将允许我们的学习算法运行的更快。
二、目标2可视化Visualization
进行数据降维处理,我们可以容易地实现高维数据可视化——将其降为三维甚至二维。这种情况下我们需要找到新的特征量z1,z2(and perhaps z3)来概括其他特征量。
例如:有一百多种关于国家经济的特征量,我们也许可以把它们概括为新的特征量“经济活跃度”
三、主成分分析Principal Component Analysis
对于降维分析来说,目前最流行的算法是主成分分析(PCA)。
1、PCA的目标
PCA做的就是它会找一个低维平面,然后将数据投影到上面,使投影误差最小。在应用PCA之前,常规的做法是,先进行均值归一化和特征规范化。
因此PCA的目标就是:
PS:PCA不是线性回归!!!
- 在线性回归问题中,我们最小化的是每一点到投影直线的平方误差,这是垂直距离。
- 在PCA中,我们最小化的是最短距离,或者说最短的正交距离。
- 在线性回归问题中,我们用训练样本x来训练参数θ来预测y。
- 在PCA中,我们使用一系列的特征量x1,x2,…,xn来找出一个最接近的通用数据集。我们并不尝试预测任何结果,也不会对特征量设置任何权重θ。
2、PCA具体步骤
(1)数据预处理
特征缩放、均值归零
(2)投影到子空间上
具体做法如下:
四、压缩重现Reconstruction from Compressed Representation
如果我们使用PCA来压缩数据,那么我们该如何解压数据,或者说得到原始数据呢?
从一维到二维,我们做了变换:z∈R→x∈R2
我们也能用上面的等式反推回来:
这里要注意的是,我们仅仅能够得到原始数据的近似值。
五、应用PCA的一些建议
使用PCA的最常见目的是加快监督学习的速度。
对于具有大量特征量(例如x(1),…,x(m)∈R10000)的训练集,我们使用PCA来减少训练集的特征量数量(例如z(1),…,z(m)∈R1000)
应用:
1、压缩:
减少数据占用空间
加快算法速度
2、数据可视化:
选择k=2或k=3
3、PCA的不良使用目的:
试图用它来避免过拟合。我们可能认为,使用PCA减少了特征量的数量可以有效避免过拟合。这可能有用,但是并不推荐。因为这种做法没有考虑到我们的结果y(可能会导致遗漏与y相关的某些特征)。使用正则化才是更好的做法。
不要一开始就认为需要PCA:你应该先尝试使用原始数据来训练学习模型,然后视情况决定是否需要PCA。