1. PCA 定义
PCA(主成成分分析)是将输入特征转换为其主成分的系统化方式。这些主成分作为在分类或回归任务中新特征。
主成分的定义是数据中会使方差最大化的方向,它是在对特征数据执行投影或压缩时,最大化的降低信息丢失。
可对主成分划分等级。主成分等级越高,产生的方差越大。产生方差最大的主成分即为第一主成分。产生方差第二大的成分即为第二主成分。依次类推。
主成分在某种意义上是垂直的。因此从数学的角度出发,第一主成分不会与第二个主成分重叠。同样第二于第三也不会重叠。在某种意义上可作为单独的特征对待。
主成分数量上有限的。该最大值等于输入的特征数量。通常情况下只用到前面几个主成分。
2. 何时使用PCA
在什么情况下会用到PCA?
第一种情况是:想要访问隐藏的特征。简单说就是想知道第一个主成分的大小。
第二种情况是:降维。PCA 可以执行很多工作,能在降维上提供帮助。如下:
1. 可视化高纬数据。当需要画散点图时,通常情况下只有 x 和 y 两个轴,即两个维度。但数据集中通常不止两个特征,能做的就是投射到两个主成分,然后画出散点图。
2. 减少噪音。数据集中几乎都存在噪音。在PCA中捕获的第一、第二主成分为数据中真正的模式,而较小的主成分只表示噪音。实际中会抛弃较小的主成分。
3. 预处理。在使用另一个算法之前,对数据进行预处理。如果数据有很高的维度,而且算法也比较复杂。这导致运行比较慢,因此可食用PCA维度。
3. sklearn 中的PCA
sklearn 中PCA 的例子:http://lijiancheng0614.github.io/scikit-learn/modules/decomposition.html#decompositions
sklean 中 PCA 的API:http://lijiancheng0614.github.io/scikit-learn/modules/generated/sklearn.decomposition.PCA.html#sklearn.decomposition.PCA
4. PCA + SVM 实现人脸识别
为什么PCA在人脸识别中会有不错应用呢?答案可能有几个:
1. 人脸照片通常有很高的维度(很多像素)
2. 人脸具有一下一般性形态,这些形态可以食用较小维数的方式捕捉。比如人一般有两只眼睛,眼睛都基本位于脸部顶部的位置。
可在此下载代码,使用 jupyter 打开查看。项目来自udacity 中的机器学习。
网友评论