Can PCA recover the labels from the features selection?

3 vues (au cours des 30 derniers jours)
Pamela Franco
Pamela Franco le 27 Oct 2020
I am applying PCA in order to obtain features selection. Using Bft_pca function writing by Mery et. al. (from Balu Tollbox). Nevertheless, I can not find a way of how to obtain the labels from the features selection.
I do not know if it is possible, because A are the eigenvalues from Cx, that are ordering in descending.
Can anybody help me?
Kind regards!
% [Y,lambda,A,Xs,mx,Y2] = Bft_pca(X,m)
%
% Toolbox: Balu
% Principal component analysis
% X is the matrix feature.
% m number of selected components or the energy 0<m<=1 (in this case it
% will be selected the first d principal components that fulfill the
% condition sum(lambda(1:d))/sum(lambda) >= energy. See Example 2)
% Y contains the m principal components of X
% lambda contains the standard deviation of each principal component
% A is the transformation matrix from X to Y
% Xs is the reconstructed X from A and Y.
%
% Example 1:
% X = double(imread('cameraman.tif')); % 256x256 pixels
% [Y,lambda,A,Xs] = Bft_pca(X,30); % 30 principal components
% figure(1);bar(lambda/lambda(1))
% figure(2);imshow([X Xs],[])
%
% Example 2:
% X = double(imread('cameraman.tif')); % 256x256 pixels
% [Y,lambda,A,Xs] = Bft_pca(X,0.90); % 90% of energy
% figure(1);bar(lambda/lambda(1))
% figure(2);imshow([X Xs],[])
%
% (c) GRIMA, PUC-DCC, 2011
% http://grima.ing.puc.cl
%
function [Y,lambda,A,Xs,mx,B] = Bft_pca(X,d,options)
if nargin==2
options = d;
end
[N,L] = size(X);
if isfield(options,'m')
m = options.m;
else
m = options;
end
if and(m>0,m<1)
energy = m;
m = L;
else
energy = 0;
end
mx = mean(X);
MX = ones(N,1)*mx;
X0 = X - MX;
Cx = cov(X);
[A,Cy] = eigsort(Cx);
lambda = diag(Cy);
if energy>0
sumlambda = sum(lambda);
energylam = zeros(L,1);
for i=1:L
energylam(i) = sum(lambda(1:i))/sumlambda;
end
ii = find(energylam>energy);
m = ii(1);
end
B = A(:,1:m);
Y = X0*B; %Y2 = X0*A; Y2 = Y2(:,1:m); % the first m components
Xs = Y*B' + MX;

Réponses (0)

Catégories

En savoir plus sur Dimensionality Reduction and Feature Extraction dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by