吴恩达机器学习ex7:PCA降维

主成分分析(principal component analysis, PCA)。
1、样本
1.1、样本数据集
导入一个二维的数据集并显示,得到。

>> load ('ex7data1.mat');
>> plot(X(:, 1), X(:, 2), 'bo');
>> axis([0.5 6.5 2 8]); axis square;

在这里插入图片描述
1.2、执行PCA算法
PCA算法包括如下几个部分:
对原始数据进行归一化:其归一化的算法为X:=(X-mu)/sigma,其中mu为数据的均值,sigma为数据的标准差。
计算数据的协方差矩阵:在这里插入图片描述
对协方差矩阵进行奇异值分解:在这里插入图片描述
若降为K维,则取Ureduce = U(:,1:K);
降维后的数据为Z = Ureduce’ * X 。
完善函数[U, S] = pca(X)有:

function [U, S] = pca(X)

[m, n] = size(X);

U = zeros(n);
S = zeros(n);

Sigma = X'*X/m;
[U,S,V] = svd(Sigma);

end

执行程序有:

Top eigenvector: 
 U(:,1) = -0.707107 -0.707107 

在这里插入图片描述
1.3、使用PCA降维
完成映射函数Z = projectData(X, U, K):

function Z = projectData(X, U, K)

Z = zeros(size(X, 1), K);

Ureduce = U(:,1:K);
Z = X * Ureduce;
end

完善重构函数X_rec = recoverData(Z, U, K):

function X_rec = recoverData(Z, U, K)

X_rec = zeros(size(Z, 1), size(U, 1));
       
Ureduce = U(:,1:K);
X_rec = Z * Ureduce';

end

运行程序有:

Dimension reduction on example dataset.

Projection of the first example: 1.481274

(this value should be about 1.481274)

Approximation of the first example: -1.047419 -1.047419

(this value should be about  -1.047419 -1.047419)

在这里插入图片描述
2、人脸图像数据集
原始数据中前100幅人脸图像为
在这里插入图片描述
将1024维图像降维至100维
在这里插入图片描述
原始图像与PCA重建的图像对比为
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值