PCA:理解与实现

我的“智能”理解 先从PCA说起 。。。


% Copyright 2012
% Mc_PCA,Image Compress
% Authors:  Michael Chen.
% Contact: Michael Chen, Department of CS, ** University
% Email:    sunscone.23@gmail.com   


%% This function is used to image compress
function [OriDataReconstruction,error] = Mc_PCA_2(OriData,p)


OriData = double(OriData);
rowN = size(OriData,1);
colN = size(OriData,2);


%calculate the mean of every column in the OriData matrix
OriDataMean = repmat(mean(OriData,2),1,colN);


%oriData centralization:calculate the different between the per column and it's mean value
CentralizationData = OriData - OriDataMean;
%calculate the cov matrix
CovMatrix = CentralizationData' * CentralizationData;
%eigenValue problem
[eigenVector,eigenValue] = eig(CovMatrix);
%sort the eigenValue Matrix
[eigenValue_sorted,index_sorted] = sort(sum(eigenValue),'descend');
%choose the first p eigenVector to foundment a Feature Matrix
FeatureMatirxOfCentralizationData = zeros(size(eigenValue,1),p);
for i=1:p
    FeatureMatirxOfCentralizationData(:,i) = eigenVector(:,index_sorted(i));
end


%Projection per featureVector on the dif data space
%The DimReductionOriData is the Feature face of Ori-face
DimReductionOriData = FeatureMatirxOfCentralizationData' * CentralizationData';% Y = W'*X,X here is the centralized oriData


CentralizationDataReconstruction = (FeatureMatirxOfCentralizationData * DimReductionOriData);%get difData


OriDataReconstruction = CentralizationDataReconstruction' + OriDataMean;


%OriData;
%FeatureMatirx;
%FinalRecM;
error = norm(OriData-ReconstructionOriData,2);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值