Can PCA recover the labels from the features selection?

3 visualizaciones (últimos 30 días)
Pamela Franco
Pamela Franco el 27 de Oct. de 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;

Respuestas (0)

Categorías

Más información sobre Dimensionality Reduction and Feature Extraction en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by