主成分是由数据中具有最大方差的方向决定的,因为可以最大程度的保留信息量
我理解相当于降维,也就是将特征通过降维的方式减少
方差最大化相当于将所有的距离最小化,这个方差和平时理解的方差不太一样
PCA可以帮助你发现数据中的隐藏特征,比如说得到总体上有两个因素推动房价变动,至于是什么,要自己看数据去判断
主成分分类最大值等于训练点数量和特征数量的最小值
PCA的特点
- PCA将输入特征转化为主成分的系统化方式
- 这些主成分可以作为新特征使用
- 主成分的定义是数据中会使方差最大化的方向,将出现信息丢失的可能性降至最低
- 可以对主成分划分等级,数据因特定主成分而产生的方差越大,那么该主成分的级别越高,方差最大的主成分即为第一个主成分
- 主成分在某种意义上是相互垂直的,第二个主成分基本不会与与第一个主成分重叠,可以将他们作为单独的特征对待
- 主成分数量有限,最大值等于数据集中的输入特征数量
什么时候使用PCA
- 想要访问隐藏的特征,这些特征可能隐藏显示在你的数据图案中
- 降维
- 可视化高维数据,比如说可视化只能看两个特征,但是当特征很多的时候就用得上了
- 怀疑数据中存在噪声,可以帮助抛弃重要性小的特征,去除噪声
- 让算法在少量的特征上更有效,比如说人脸识别,可以将维度降低1/10,然后使用svm来进行训练,之后发现被拍摄人的身份
PCA在人脸识别上的应用
PCA之所以在人脸识别上好用,主要原因
- 首先像素很多,可能有100万个像素点,缩减非常重要,svm很难处理100万
- 头像中存在一些普遍的模式,比如说有两个眼睛,适合PCA做主成分分析
练习:每个主成分的可释方差
answer:0.19346527、0.15116846
首先要下载数据集,运行代码,这里要注意,数据集要放在根目录下,也就是如果是windows系统要放在C:\Users\YourName下面,而不是放在ud120-project下面
运行后会打印数据即可看到结果,如下图,结果就是前两个数字
练习:要使用多少个主成分?
- could go either way
练习:F1分数与使用的主成分数
- answer:better
- 把[10, 15, 25, 50, 100, 250]和原来的150的分数都截了图,如下:
- 可以看出来F1分数越高,则分类效果越好
练习:维度降低与过拟合
会,PC 较多时性能会下降
根据上面的图可以看出来,当250个特征的时候明显比100的下降了
练习:选择主成分
主要的方法就是尝试,直到到某一点时增加会导致下降或者不动,那说明到头了