PCA in Matlab reduce dimensionality
26 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Matlaber
el 19 de Feb. de 2019
Comentada: Matlaber
el 21 de Feb. de 2019
I just want to have a simple PCA to reduce my dimensionality of let say 400 * 5000 to 400 * 4
meaning reduce from 5000 to 4.
I am not sure where can i set the value of reduction.
coeff = pca(X)
I am trying to follow:
load hald
Then:
The dataset of ingredient is 13 * 4
coeff = pca(ingredients)
Output:
coeff = 4×4
-0.0678 -0.6460 0.5673 0.5062
-0.6785 -0.0200 -0.5440 0.4933
0.0290 0.7553 0.4036 0.5156
0.7309 -0.1085 -0.4684 0.4844
I am wondering can i change it to output of 13 *2
6 comentarios
Adam
el 20 de Feb. de 2019
Editada: Adam
el 20 de Feb. de 2019
Dimension reduction is 'throwing some information away'. It isn't magic, unfortunately. Unless you have perfectly correlated redundant variables then if you have 8 variables and you want to reduce down to 3 dimensions then you will obviously lose some information.
Of course, doing it without PCA you would lose a huge amount of information if you just chop off 5 variables.
Because you have used PCA though you are throwing away the dimensions that contain least information about the data.
Looking at the explained output from PCA will help you see what you are throwing away. This is a measure of how much of the data variation is captured by each dimension. You will usually see a large number (between 0 and 100, e.g. 80) for the first, then progressivley smaller numbers. Unless your data is very random you will often find that after the first few principal components the values in the explained vector are < 1 (i.e. that dimension hold less than 1% of the information so that is all you lose if you throw that dimension away).
Respuesta aceptada
Elysi Cochin
el 20 de Feb. de 2019
[coeff, score] = pca(ingr);
requiredResult = score(:,1:2);
or if you want to change coeff to 13 x 2 matrix, you'll have to use reshape function, but to use reshape your variable coeff must have atleast 13 x 2 elements
or you can use repmat, it will repeat copies of the array coeff
2 comentarios
Más respuestas (0)
Ver también
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!