通过上面两个小节的学习,我们可以总结出一个idea,那就是有时候,我们通过对数据集原来的特征进行转换,生成新的“特征”或者成分,会比直接使用原始的特征效果好。现在我们再引入一个新的名词,称为“数据表达”。在数据集极为复杂的情况下,比如图像识别,数据表达就显得十分重要。因为图像是由成千上万个像素组成,每个像素上又有不同的RGB色彩值,所以我们要用到一个新的数据处理方法,称为“特征提取”。
1.PCA的数据白化功能用于特征提取
数据白化的定义:
什么是数据白化呢?拿我们这个例子来说,虽然每个人的脸部特征有很大差异,但如果你从相素级别观察,差距其实就没有那么大了。而且相邻的像素之间有很大相关性,这样一来,样本特征的输入就是冗余的了,白化的目的就是降低冗余性。所以白化的过程会让样本特征之间的相关性降低,且所有体征具有相同的方差。
接下来使用LFW人脸识别数据集来实验数据白化用于特征提取的功能:
1.数据集:LFW人脸识别数据集
LFW人脸识别数据集包含了若干张JPEG图片,是从网上搜集的一些名人的照片。而创建这个数据集的目的,是训练机器学习算法,看给出两个照片,算法能否判断出这两个人是否是同一个人。后来人们对机器学习又提出了更高的要求:给出一张不再数据集中的人脸照片,让机器判断这张照片是否属于该数据集中的某一个人,并且要交出他的名字。
2.了解数据集:
#导入数据集获取工具
from sklearn.datasets import fetch_lfw_people
#载入人脸数据集
faces = fetch_lfw_people(