PCA values
Show older comments
I have written following code to learn about PCA.
clear all
clc
load hald
hald=ingredients;
[m n]=size(hald);
mu=mean(hald);
mumat=repmat(mu,[m 1]);
hald_new=hald-mumat;
cov_mat=cov(hald_new);
[EVec EVal]=eig(cov_mat);
[sq iq]=sort(diag(EVal)','descend');
for i=1:length(iq)
EVec_sort(:,i)=EVec(:,iq(i));
end
EVal_sort=sq;
pca_data=EVec_sort'*hald_new';
And also I compared my results with matlab princomp() function. Results are like this..
My result
>> pca_data'
ans =
36.8218 6.8709 -4.5909 0.3967
29.6073 -4.6109 -2.2476 -0.3958
-12.9818 4.2049 0.9022 -1.1261
23.7147 6.6341 1.8547 -0.3786
-0.5532 4.4617 -6.0874 0.1424
-10.8125 3.6466 0.9130 -0.1350
-32.5882 -8.9798 -1.6063 0.0818
22.6064 -10.7259 3.2365 0.3243
-9.2626 -8.9854 -0.0169 -0.5437
-3.2840 14.1573 7.0465 0.3405
9.2200 -12.3861 3.4283 0.4352
-25.5849 2.7817 -0.3867 0.4468
-26.9032 2.9310 -2.4455 0.4116
Matlab result:
>> [pc,score,latent,tsquare] = princomp(ingredients);
>> score
score =
36.8218 -6.8709 -4.5909 0.3967
29.6073 4.6109 -2.2476 -0.3958
-12.9818 -4.2049 0.9022 -1.1261
23.7147 -6.6341 1.8547 -0.3786
-0.5532 -4.4617 -6.0874 0.1424
-10.8125 -3.6466 0.9130 -0.1350
-32.5882 8.9798 -1.6063 0.0818
22.6064 10.7259 3.2365 0.3243
-9.2626 8.9854 -0.0169 -0.5437
-3.2840 -14.1573 7.0465 0.3405
9.2200 12.3861 3.4283 0.4352
-25.5849 -2.7817 -0.3867 0.4468
-26.9032 -2.9310 -2.4455 0.4116
Why the second column giving wrong result (in signs)?
1 Comment
Debarshi Chakraborty
on 21 Jan 2020
how to plot this data?
Accepted Answer
More Answers (0)
Categories
Find more on Dimensionality Reduction and Feature Extraction in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!