机器学习入门之主成分分析(及MATLAB实现)

机器学习-周志华-个人练习10.6 10.6 试使用MATLAB中的PCA 函数对Yale人脸数据集进行降维,并观察前20个特征向量所对应的图像。 为了便于练习,未使用MATLAB,而是用了scikit-learn.decomposition模块下的PCA进行练习。书上给的Yale人脸数据集访问有点慢(貌似被墙了),我重新上传了一份到百度云(点此下载)。数据集共有样本166个,每张图像的分辨率为320*243(用numpy的sha 阅读详情

本次学习使用MATLAB中的PCA函数对Yale人脸数据库进行降维,并观察前20个特征向量所对应的图像。欢迎大家一起讨论,进步。


设计思路

1.读取人脸数据:将165张图片保存在info中,每一行代表一张图片(100*100维),共165列

A. 设置图片路径

B. 根据路径读取图片

C. 将100*100的图片转化为一行,即1*10000

D. 把转化后的图片保存在info中

2.进行PCA分析

A. 将info转为double类型(PCA不支持整数类输入)

B. 调用PCA函数

3.输出前20个特征向量所对应的图片

A. 将特征向量转化为100*100的数组

B. 调用mat2gray将数组转化为图片

代码:
%读取人脸数据:将165张图片保存在info中,每行代表一张图片,共165列。
info=[];
for i=1:165
    filename=strcat('C:\Users\Reid Lee\Desktop\yale\s',num2str(i),'.bmp');
    img = imread(filename,'bmp');
    vex = reshape(img,1,100*100);
    info = [info;vex];
end

%进行PCA分析
x = double(info);
[coeff,score,latent]=pca(x);

%输出前20个特征向量所对应的图片
for i=1:20
    img=reshape(coeff(:,i),100,100);
    subplot(5,4,i)
    imshow(mat2gray(img));
end

%只保留前k个特征
 k=20;
 %coeff(:,k+1:164)=0;
 x = x * (coeff*coeff');

%输出还原的图片
for i=1:165
    filename=strcat('C:\Users\Reid Lee\Desktop\myale\m',num2str(i),'.bmp');
    img=reshape(coeff(:,i),100,100);
    imwrite(mat2gray(img),filename,'bmp');
end

sprintf('finish')


测试及结果

1. 前20个特征向量对应的图片

2. 使用前20个特征向量对原图片进行转化

MATLAB实现正态分布ML(极大似然)估计 极大似然估计在上一篇博客中有详细的解说:http://blog.youkuaiyun.com/zengxiantao1994/article/details/72787849 下面用MATLAB实现正态分布的ML估计 % 二维正态分布的两分类问题 (ML估计) clc; clear; % 两个类别数据的均值向量 Mu = [0 0; 3 3]'; % 协方差矩阵 S1 = 0.8 * eye 阅读详情

相关推荐

PCA主成分分析法Matlab实现和Python实现

软件版本声明: Matlab版本:MATLAB R2016a Python版本:Python 3.6.2 Matlab实现参考自博客:http://blog.youkuaiyun.com/guyuealian/article/details/68487833 一、PCA的Matlab实现 方法一: Matlab有关于主成分分析的函数——pca()函数,可以直接调用该函数完成数据集降维。

sunflower_kris的博客 2279

试使用matlab的PCA函数对Yale人脸数据进行降维,并观察前20个特征向量对应的图像

学习笔记: PCA(Principal Component Analysis),即主成分分析方法,是一种使用最广泛的数据降维算法。PCA的主要思想是将n维特征映射到k维上, 这k维是全新的正交特征也被称为主成分,是在原有n维特征的基础上重新构造出来的k维特征。PCA的工作就是从原始的空间中顺序地找一组相互正交的坐标轴,新的坐标轴的选择与数据本身是密切相关的。其中: 第一个新坐标轴选择是原始数据中方...

qq_41224398的博客 5976

主成分分析及MATLAB和SPSS求解整理

主成分分析方法及MATLA和SPSS求解整理 为什么要用? 因为在数据建模时多个变量之间往往会有一定的相关性,会显著增加问题分析的复杂性,有必要采取将多个变量综合为少数有代表性的变量,这些变量能够代表原始数据的大多数信息且不相关,有助于分析建模,主成分分析有能达到这种目的。 PCA基本思想 数学上的方法就是将原来的变量做线性组合,作为新的综合变量,这种线性组合有可以有很多,具体选取哪几种呢。如果选取第一个线性组合即第一个综合变量 ,这里需要它更多的反映原来变量的信息,这里的“信息”用方差来表示(

qq_45181382的博客 3137

python之PCA主成分分析实现对人脸数据降维

python入门之PCA主成分分析实现对人脸数据降维

qq_52241267的博客 2418

MATLAB实现主成分分析及核主成分分析

MATLAB工作环境主要由命令窗口、编辑器、工作空间、路径、工具箱等组成。对于初学者来说,熟悉这些基本组成部分对后续的编程和数据分析至关重要。命令窗口(Command Window):是用户与MATLAB进行交互的主要界面,可以直接输入命令并查看结果。编辑器(Editor):用于编写和调试MATLAB代码的工具。工作空间(Workspace):显示当前MATLAB会话中所有变量及其值。路径(Path):决定了MATLAB在搜索函数时查找文件的目录。

weixin_32445049的博客 938

MATLAB中主成分分析的源代码实现与应用

主成分分析(PCA)是一种统计方法,通过正交变换将可能相关的变量转换为一系列线性不相关的变量,这些新变量称为主成分。PCA的目的是减少数据集的维度,同时保持数据集中的大部分方差,以便于可视化和进一步分析。协方差是衡量两个随机变量关系强度和方向的统计量。它描述了两个变量变化趋势的一致性,当两个变量同向变化时,协方差为正;反之为负。具体计算公式为:其中,(X) 和 (Y) 是两个随机变量,(X_i) 和 (Y_i) 分别是它们的观测值,(\bar{X}) 和 (\bar{Y}) 是它们的平均值。

weixin_34520664的博客 956

【主成分分析】PCA降维算法及Matlab代码实现

主成分分析(Principal Component Analysis,PCA), 是一种统计方法。通过正交变换将一组可能存在相关性的变量转换为一组线性不相关的变量,转换后的这组变量叫主成分。 在实际课题中,为了全面分析问题,往往提出很多与此有关的变量(或因素),因为每个变量都在不同程度上反映这个课题的某些信息。 主成分分析首先是由K.皮尔森(Karl Pearson)对非随机变量引入的,尔后H.霍特林将此方法推广到随机向量的情形。信息的大小通常用离差平方和或方差来衡量。

LilYau的博客 1万+

MATLAB实现PCA主成分分析完整代码与应用实战

经过这场深度旅程,你应该已经明白:🔹PCA 不只是一个黑箱函数,它是几何直观、统计思想与线性代数的精妙融合。🔹中心化不是可选项,而是必要前提,否则你在拟合“平均值”而非“变化”。🔹SVD 比 EVD 更强大,尤其在高维小样本场景下,是工业界的主流选择。🔹降维不是目的,而是手段,真正的价值在于后续的聚类、分类、可视化或去噪。未来,当你面对一个新的高维数据集时,不妨问自己这几个问题:❓ 数据是否已中心化?❓ 特征数量是否远大于样本数?

weixin_42592399的博客 964

主成分分析matlab代码实现

方法一: 1:用zscore函数对原始数据S进行标准化。 2:用cov函数求出标准化后的数据的协方差。 3:求出此协方差的特征向量与特征根(eig函数)。 4:将产生的特征向量依据特征根大小从大到小进行排列(即将特征向量按列倒序)。 5:依据需求取出倒序后的向量的前几列(一般根据特征根来算贡献率,使得累计贡献率大于85%),组成新的矩阵T 6:做S*T得到分析后的新的数据。 7:依据特征根算贡献率...

我的blog屋 1万+

MATLAB中实现主成分分析(PCA)的完整指南

主成分分析(Principal Component Analysis,PCA)是一种统计技术,通过正交变换将一组可能相关的变量转换为一组线性不相关的变量,这些新变量称为主成分。每个主成分都能够以不同的程度代表原始数据中的变异性,其中第一主成分具有最大的变异性,第二主成分则具有次大的变异性,以此类推。这种技术广泛应用于数据降维,旨在减少数据集中的变量数量,同时尽量保留原始数据集的信息。特征值和特征向量是线性代数中的基本概念,它们在PCA中扮演着关键角色。

weixin_26805451的博客 1373

吴恩达机器学习MATLAB代码入门指南

机器学习是一种通过算法使计算机从数据中学习并作出决策或预测的科学。它是一种实现人工智能的方法,让机器能够模拟人类的学习方式,从经验中提升自身的性能。MATLAB提供了一个名为Statistics and Machine Learning Toolbox的工具箱,其中包含了大量的机器学习算法和统计分析函数。通过该工具箱,用户可以轻松地进行分类、回归、聚类、降维以及深度学习等任务。对于机器学习的初学者,MATLAB内置了多个示例,例如使用内置的fisheriris。

weixin_34064233的博客 878

matlab主成分分析代码

matlab主成分分析代码 function y=zhuchengfenfenxi() clc,clear gj=xlsread('RES2016-zhuchengfen.xlsx');%把原始数据保存在纯文本文件gj.txt中 gj=zscore(gj); %数据标准化 r=corrcoef(gj); %计算相关系数矩阵 %下面利用相关系数矩阵进行主成分分析,x的列为r的特征向量,即主成分的系...

Wangzx的博客 1万+

2DPCA数据降维,包含Yalefaces人脸图像集

2DPCA,包含Yalefaces人脸图像集,大量注释,是自己的初学时的理解,如有错误,请指正

【机器学习】逻辑化讲清PCA主成分分析

小编去年数学建模比赛的时候真的理解不了主成分分析中的“主成分”的概念!!但是,时隔两年,在机器学习领域我又行了,终于搞明白了!且看正文!再分享一个今天听到的播客中非常触动我的一句话吧:“人生也许没有诗和远方,你脚下的苟且就是你没有发现的诗和远方。”来自钱婧老师的新书《我有自己的宇宙》

田sir的超大芝士矩阵 2435

yale人脸数据+PCA进行降维处理

一次课程实验作业,用人脸数据集进行降维处理显示降维处理后的图像

Python-PCA降维人脸识别,已包含yale数据库

本人在https://blog.youkuaiyun.com/u010006643/article/details/46417127博客上看到的,奈何数据库没有,本人结合网上流传的数据库yale,写下了可以运行得出结果的PCA降维,人脸识别程序,特别适合numpy和PCA学习。我第二次上传资源,感谢平台支持。谢谢大家支持。代码注释很详细,注意我把人脸图片在文件夹之内看成二维的数组。实验表明,PCA对于光照很敏感。

【数据降维-第1篇】主成分分析(PCA)快速理解,及MATLAB实现

据降维是机器学习领域经常使用到的数据处理方法,所以在本专栏在正式开始深度学习专题之前,先介绍几种常用的降维方法(PCA、KPCA、t-SNE、MDS等)和MATLAB实现。

fengzhuqiaoqiu的博客 4989

课程设计大作业,机器学习实战案例,采用PCA算法对yale人脸数据集进行建模分析(PCA建模源码+YaleFaces人脸数据集)

课程设计大作业,机器学习实战案例,采用PCA算法对yale人脸数据集进行建模分析(PCA建模源码+YaleFaces人脸数据集) 课程设计大作业,机器学习实战案例,采用PCA算法对yale人脸数据集进行建模分析(PCA建模源码+YaleFaces人脸数据集) 课程设计大作业,机器学习实战案例,采用PCA算法对yale人脸数据集进行建模分析(PCA建模源码+YaleFaces人脸数据集)课程设计大作业,机器学习实战案例,采用PCA算法对yale人脸数据集进行建模分析(PCA建模源码+YaleFaces人脸数据集)课程设计大作业,机器学习实战案例,采用PCA算法对yale人脸数据集进行建模分析(PCA建模源码+YaleFaces人脸数据集)课程设计大作业,机器学习实战案例,采用PCA算法对yale人脸数据集进行建模分析(PCA建模源码+YaleFaces人脸数据集)课程设计大作业,机器学习实战案例,采用PCA算法对yale人脸数据集进行建模分析(PCA建模源码+YaleFaces人脸数据集)课程设计大作业,机器学习实战案例,采用PCA算法对yale人脸数据集进行建模分析(PCA建模源码

上一篇: 初学四旋翼之遥控
下一篇: 机器学习入门之决策树(python实现)
dhaduce
博客等级 码龄9年 43粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值