PCA降维与Yale人脸数据集图像对比:20/100特征展示

需积分: 0 0 下载量 82 浏览量 更新于2024-08-04 收藏 557KB DOCX 举报
在关文聪的《机器学习》课程作业六中,学生被要求使用PCA(主成分分析)对Yale人脸数据集进行降维,以探索数据的主要特征。Yale人脸数据集是一个常用的数据集,用于人脸识别和机器学习研究,包含多个不同姿势和表情的人脸图像。本任务的目标是通过减少数据的维度,观察前20个和前100个特征向量对应的人脸图像变化,以理解哪些特征对于识别最重要。 首先,学生需要下载并解压Yale人脸数据集,将其图片路径设置为'path'变量,然后使用numpy库读取和预处理图像数据。所有的图像被展平为一维向量,存储在一个(m, n)形状的矩阵`data`中,其中m代表图片数量,n是每个图像的像素数量。 接下来,对数据进行预处理,包括中心化(使数据均值为零),这可以通过`data_centered = data - data.mean(axis=0)`和`data_centered -= data_centered.mean(axis=1).reshape(m, -1)`这两步实现。这样做的目的是为了消除个体间的差异,使PCA更加专注于数据的内在结构。 设定要保留的特征数量k为20和100,这表示分别保留前20和前100个主成分。然后,利用Scikit-learn库中的PCA类分别创建PCA对象`pca1`和`pca2`,进行降维处理。降维后,学生需要保存每个PCA模型的方差比例,这反映了特征的重要性。 最后,学生需要将降维后的数据转换回图像形式,与原始图像进行对比,以直观展示降维后图像的变化。他们可以选择随机选取的三张照片,观察前20个和前100个特征向量对应的降维图像,看看主要特征是否能保持人脸的基本识别特征,同时还能减少冗余信息。 整个过程涉及数据加载、预处理、主成分分析和结果可视化,这对于理解数据的内在结构和特征选择至关重要,也是机器学习项目中常见的实践步骤。通过这个练习,学生可以深入了解PCA在实际问题中的应用以及其在图像处理领域的降维能力。