机器学习实验报告

  • 〇、实验报告pdf可在该网址下载
  • 一、实验目的与要求
  • 二、实验内容与方法
    • 2.0 PCA算法学习与回顾
      • 2.0.1 PCA推导的优化问题
      • 2.0.2 优化问题的解
      • 2.0.3 算法流程
    • 2.1 人脸数据集
    • 2.2 实验流程图
  • 三、实验步骤与过程
    • 3.1 实验过程
      • 3.1.2 实验效果图
    • 3.2 PCA算法的人脸图像降维
      • 3.2.1 人脸图像降维步骤
      • 3.2.2 三个数据集降至2,3维的可视化效果图
    • 3.3 PCA+KNN 人脸识别
      • 3.3.1 降维的重构阈值
      • 3.3.2 人脸识别效果数据展示
    • 3.4 设计一个新的PCA算法
  • 四、实验结论或体会

〇、实验报告pdf可在该网址下载

机器学习实验一:PCA
这个需要积分下载(因为实验报告后台查重,不建议直接白嫖)。
建议看博客,博客里面会有很多实验报告小说明会用【…】加粗注释。

一、实验目的与要求

  1. 实现 PCA 算法的人脸重构,即用 20,40,60,80,…,160 个投影来重构图像的效果;
  2. 实现 PCA 算法的人脸识别,给出 10,20,30,…,160 维的人脸识别识别率;
  3. 用 PCA 用来进行人脸图像降维,实现 3 个不同数据集多个子集的二维和三维空间实
    现数据的可视化;
  4. 同时设计一个新的 PCA 算法,内容简要写在实验报告中,并与经典 PCA 比较。(详
    细内容可另写成一篇论文提交到“论文提交处”。);
  5. 所有的实验必须独立完成,实验报告与代码等绝对不要抄!!我们后台有查重功能,
    COPY一旦发现该课程为0分。不要把大一时做的那个垃圾级的PCA项目报告再次交上来,我要查看重复率。

二、实验内容与方法

2.0 PCA算法学习与回顾

PCA 是一种最常用的降维方法,在周志华老师的《机器学习》一书中给出了两种性质:

  • 最近重构性:样本点到这个超平面的距离都足够近;
  • 最大可分性:样本点在这个超平面上的投影都尽可能分开。
    书中给出了明确推导,并认为基于最近重构性和最大可分性,能分别得到主成分分析的
    两种等价推导。

2.0.1 PCA推导的优化问题

2.0.2 优化问题的解

2.0.3 算法流程

2.1 人脸数据集

本次实验主要使用的人脸数据集有:

ORL56_46人脸数据集,该数据集共有40个人,每个人10张图片。每张图片像素大小为56×46。本次实验该数据集全部照片使用。

AR人脸数据集,该数据库由3个以上的数据库组成;126名受试者面部正面图像的200幅彩色图像。每个主题有26张不同的图片。对于每个受试者,这些图像被记录在两个不同的时段,间隔两周,每个时段由13张图像组成。所有图像均由同一台摄像机在严格控制的照明和视点条件下拍摄。数据库中的每个图像都是768×576像素大小,每个像素由24位RGB颜色值表示。本次实验采用前15个人的人脸子集,每个人只采用前7张未遮挡的人脸图像。

FERET人脸数据集,200人,每人7张,已分类,灰度图,80x80像素。第1幅为标准无变化图像,第2,5幅为大幅度姿态变化图像,第3,4幅为小幅度姿态变化图像。第7幅为光照变化图像。

2.2 实验流程图

三、实验步骤与过程

3.1 实验过程

在特征提取中,主成分分析是一种重要的线性变换方法,这里通过对ORL数据集进行实验来说明PCA提取人脸特征以及利用这些特征进行人脸重建的过程。最终展示20,40,60,80,…,160个投影来重构图像的效果。

1) 首先导入40×10=400张人脸,并拉成列向量,拼成一个人脸矩阵faces;

%----------导入一类人脸样本----------
faces=zeros(face_length*face_width,sample*class);
for i=1:classfor j=1:samplep=(i-1)*10+j;facepath = strcat('C:\Users\Vermouth\Desktop\ML\作业\ORL56_46\orl',num2str(i),'_',num2str(j),'.bmp');face=imread(facepath);faces(:,p)=face(:); %将人脸拉成列向量end
end

2) 然后对人脸进行去中心化的操作,计算协方差faces_cov,对协方差矩阵进行特征值分解得到特征值和特征向量,计算出基base;

%----------pca算法----------
faces_average=mean(faces,2); %平均脸
faces_diff=faces-repmat(faces_average,1,sample*class); %减去平均脸
%计算协方差
faces_cov=faces_diff'*faces_diff;
%特征值分解
[V,D]=eig(faces_cov);
D1=diag(D);
D_sort = flipud(D1);
V_sort = fliplr(V);
base = faces_diff*V_sort(:,:)*diag(D_sort(:).^(-1/2)); %基

3) 接着取出第一个人的第一张照片(orl1_1.bmp)进行重构;

%----------对第一张图片进行重构----------
img1=strcat('C:\Users\Vermouth\Desktop\ML\作业\ORL56_46\orl1_',num2str(1),'.bmp');
test1=imread(img1);
combined1(:,1)=test1(1:face_length*face_width);
combined1=double(combined1);
dis1=combined1-faces_average; %减去平均脸
factor1=base'*dis1;

4) 投影向量归一化+结果可视化。

figure
for t=20:20:160base_temp = base(:,1:t)*factor1(1:t);base_temp = base_temp + faces_average;base_temp = reshape(base_temp, face_length,face_width);MAX=max(max(base_temp));                 %求出图像矩阵中灰度值最大的值MIN=min(min(base_temp));                 %求出图像矩阵中灰度值最小的值base_temp(:,:)=(base_temp(:,:)-MIN)/(MAX-MIN)*255;  %归一化后再映射到0-255base_temp=uint8(base_temp);subplot(2,4,t/20);imshow(base_temp);
end

【不建议在实验报告上粘代码,后面的实验报告不会直接粘贴代码】

3.1.2 实验效果图

对于投影矩阵,orl数据集得到以下结果:

对于orl1_1.bmp人脸图像,得到了以下重构结果:

对于orl2_1.bmp人脸图像,得到了以下重构结果:

3.2 PCA算法的人脸图像降维

3.2.1 人脸图像降维步骤

3.2.2 三个数据集降至2,3维的可视化效果图

下面展示了3个不同数据集多个子集的二维和三维空间实现数据的可视化效果:
1) ORL人脸数据集(200张人脸图像)

  • 目标维度:2维

  • 目标维度:3维

    2) FERET_80人脸数据集

  • 目标维度:2

  • 目标维度:3

    3) AR人脸数据集:

  • 目标维度:2

  • 目标维度:3

3.3 PCA+KNN 人脸识别

本次实验主要针对降维的重构阈值,训练集测试集的比例以及KNN的k设置进行考量。本次实验使用了FERET_80人脸数据集。

3.3.1 降维的重构阈值

3.3.2 人脸识别效果数据展示

3.4 设计一个新的PCA算法

【这个你们加油!!!我就不公开献丑了!!!】

四、实验结论或体会

大一可能更多的是“尽可能理解PCA并完成实验”,到了大二,并且具备了一段时间的科研经历,我可以拓展的思考PCA的优势在哪里,为什么会有这种优势,这个优势可以优化其他什么算法,PCA有什么不足,那么我可以怎么优化等。

对于实验报告的排版和书写,在经过了一年半的学习,也逐渐形成了自己的风格。比大一时会更加严谨规范。

在思考PCA优化的时候,我考虑了核函数,考虑了图像熵,甚至考虑将PCA与LBP结合,还有集成学习来提高识别率等等方法,但是没有取得一个很好的识别效果。虽然这个左右脸来优化PCA的想法比较简单,但却是我尝试了众多方法后效果较好,且复杂度降低的方法。

操作上更多的时MATLAB不会再使用a,b,c等等变量名了,大一的时候,我记得我上台分享PCA代码的时候,代码真的很“丑”,现在想想,这种代码思维还是有很大改进的。

本次PCA实验的代码比较详细,本次实验所要探讨的问题也尽可能的详细化,希望后面可以抱着科研学者的“匠心态度”对待每一件事情。 本次实验相比于大一的PCA实验而言,更多的是处于一种自己的理解和探索。

机器学习PCA——实验报告相关推荐

  1. 机器学习SVM——实验报告

    机器学习实验报告 〇.实验报告pdf可在该网址下载 一.实验目的与要求 二.实验内容与方法 2.1 SVM的基础概念 2.2 经典SVM的优化问题及其推导 2.3 核技巧SVM的优化问题及其推导 2. ...

  2. 机器学习聚类——实验报告

    机器学习实验报告 〇.实验报告pdf可在该网址下载 一.实验目的与要求 二.实验内容与方法 2.1 聚类算法学习与回顾 2.1.1 聚类任务 1)聚类任务的概念 2)符号定义 3)性能度量 2.1.2 ...

  3. [HITML] 哈工大2020秋机器学习Lab1实验报告

    Gtihub仓库 不想白嫖的就来这投个币吧 2020年春季学期 计算学部<机器学习>课程 Lab1 实验报告 姓名 学号 班号 电子邮件 手机号码 1 实验目的 掌握最小二乘法求解(无惩罚 ...

  4. 【模式识别与人工智能】【实验报告合集】Bayes + Fisher + PCA + Decision Tree + KNN + K-Means + SVM

    目录 实验一  Bayes分类器设计 一.实验目的 二.实验原理 三.实验内容 四.实验要求 五.实验结果 六.实验分析 实验二  基于Fisher准则的线性分类器设计 一.实验目的 二.实验原理 三 ...

  5. 机器学习实验报告1——线性模型,决策树,神经网络部分

    机器学习前三次实验报告 1.线性模型 实验内容和部分实验结果: 实验1一元线性预测kaggle房价 实验2多元线性预测kaggle房价,选择多种特征进行组合,完成多元线性回归,并对比不同的特征组合,它 ...

  6. c语言回溯实验报告,实验报告: 人脸识别方法回溯与实验分析 【OpenCV测试方法源码】...

    实验报告: 人脸识别方法回顾与实验分析 [OpenCV测试方法源码] 趁着还未工作,先把过去做的东西整理下出来~ (涉及个人隐私,源码不包含测试样本,请谅解~) 对实验结果更感兴趣的朋友请直接看第5章 ...

  7. 【机器学习】实验4布置:AAAI会议论文聚类分析

    ML_class 学堂在线<机器学习>实验课代码+报告(其中实验1和实验6有配套PPT),授课老师为张敏老师.课程链接:https://www.xuetangx.com/training/ ...

  8. 实验报告: 人脸识别方法回顾与实验分析 【OpenCV测试方法源码】

    趁着还未工作,先把过去做的东西整理下出来~   Github源码:https://github.com/Blz-Galaxy/OpenCV-Face-Recognition (涉及个人隐私,源码不包含 ...

  9. 《机器学习》------实验五(综合实验)

    实验内容: 使用CTG数据将胎儿的健康分为正常,可疑或病理性. 数据描述: 对胎儿健康进行分类,以防止儿童和产妇死亡. 降低儿童死亡率反映在联合国的若干可持续发展目标中,是人类进步的关键指标.联合国预 ...

  10. 交换机vlan配置实训心得_交换机与VLAN的配置实验报告.doc

    交换机与VLAN的配置实验报告 交换机与VLAN的配置实验报告 实验目的 了解VLAN的作用及其分类. 了解VLAN数据帧MAC地址静态登记方式帧标签方式虚连接方式VLAN交换机的互联接入链路中继链路 ...

最新文章

  1. Android中Parcel的分析和使用
  2. 自言自语(三)--部分中文字体
  3. 防盗链测试01 - Jwplayer+Tengine2.3.1 mp4模块打造流媒体测试服务器
  4. 传输滤波器的选型及使用说明
  5. 《AutoCAD全套园林图纸绘制自学手册》一第1章 园林设计基本概念1.1 概述
  6. CMOS图像传感器——图像传感器噪声
  7. android 强制下线功能,Android学习之基础知识八—Android广播机制实践(实现强制下线功能)...
  8. python time模块
  9. 嵌入式nosql php,NoSQL 嵌入式数据库NeDB示例
  10. 观点:比特币新一轮突破“即将到来”
  11. linux ftp 实例
  12. 24楼,此处风景独好
  13. 洪水填充算法_区域填充算法和多边形填充的扫描线算法
  14. Spark控制消费速率
  15. SQL Server 2008R2密钥
  16. Python用Pyinstaller打包成的exe文件反编译成*.py文件
  17. 硬件基础知识笔记(二极管、三极管、MOS管、运放、滤波器、跟随器、整流)
  18. C++:什么是STL?
  19. 中南大学计算机学院王瑞,中南大学优秀毕业生.xls
  20. java小算盘金钱存银行1秒算出每一年的利息及存款,利息一目了然

热门文章

  1. yuv 420 mp4 flv 视频与acc 各类音视频测试下载地址
  2. DELMIA软件:机器人抓手工具制作
  3. 广西农业职业技术学院计算机,学科分类与代码-广西农业职业技术学院.doc
  4. 基于单片机的数字电子钟简单
  5. JAVA JSP图书管理图书系统 servlet图书管理系统实现简单的图书管理系统源码
  6. visio插入箭头_visio流程图中画箭头
  7. 一篇文章掌握Egg.js的核心用法
  8. Java课程设计-旅游管理系统
  9. WebServer服务器开发的基本逻辑
  10. Oracle 数据库安装教程(11g)