Leyendo los datos
library(readr)
img <- fread("~/GENER/TESIS/data/IMG2.txt")
Construyendo una matriz de los datos obtenidos
Se utiliza una matriz en vez de un data.frame para poder visualizar los resultados parciales y finales.
matImg <- data.matrix(img, rownames.force = NA)
image(t(matImg[nrow(matImg):1,]), col = gray(seq(1,0, length = 256)))

Implementación del PCA
Preproceso
Removiendo pixeles constantes (variabilidad nula o ménima)
Pendiente implementar ésta seccién
Implementacién del Algoritmo
PCA2 <- prcomp(img, with = F, center = T, scale. = F)
Evaluacién
plot(cumsum(PCA2$sdev)/sum(PCA2$sdev)*100,
main = "Proporción Cumulativa de la Varianza Explicada",
xlab = "Cantidad de Componentes Principales",
ylab = "% De Varianza Explicada")

Visualizacién del PCA
Proyeccién de los datos en el espacio de dimensiones generado por el PCA
projected2 <- scale(img, PCA2$center, PCA2$scale) %*%
PCA2$rotation
Visualizacién de los datos generados por el PCA
##Keeping only three dimensions
n_dim <- 100
##Projecting the data back using only the n principal components
coord_x2 <- data.table(img, projected2[,1:n_dim] %*%
t(PCA2$rotation)[1:n_dim,])
##Plotting new image
matImg <- matrix(as.numeric(coord_x2[i, 2860:1,with = F]),
nrow = 52, ncol = 52, byrow = F)
image(matImg)

NA
LS0tDQp0aXRsZTogIlBDQSBlbiBEYXRvcyBNw6lkaWNvcyBNYXRyaWNpYWxlcyINCm91dHB1dDogDQogIGh0bWxfbm90ZWJvb2s6IA0KICAgIHRoZW1lOiByZWFkYWJsZQ0KICAgIHRvYzogeWVzDQphdXRob3I6IEdlbmVyIEF2aWzDqXMgUg0KLS0tDQoNCiMjTGV5ZW5kbyBsb3MgZGF0b3MNCmBgYHtyLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KbGlicmFyeShyZWFkcikNCmltZyA8LSBmcmVhZCgifi9HRU5FUi9URVNJUy9kYXRhL0lNRzIudHh0IikNCmBgYA0KIyNDb25zdHJ1eWVuZG8gdW5hIG1hdHJpeiBkZSBsb3MgZGF0b3Mgb2J0ZW5pZG9zDQpTZSB1dGlsaXphIHVuYSBtYXRyaXogZW4gdmV6IGRlIHVuICpkYXRhLmZyYW1lKiBwYXJhIHBvZGVyIHZpc3VhbGl6YXIgbG9zIHJlc3VsdGFkb3MgcGFyY2lhbGVzIHkgZmluYWxlcy4NCmBgYHtyfQ0KbWF0SW1nIDwtIGRhdGEubWF0cml4KGltZywgcm93bmFtZXMuZm9yY2UgPSBOQSkNCmltYWdlKHQobWF0SW1nW25yb3cobWF0SW1nKToxLF0pLCBjb2wgPSBncmF5KHNlcSgxLDAsIGxlbmd0aCA9IDI1NikpKQ0KYGBgDQoNCiMjSW1wbGVtZW50YWNpw7NuIGRlbCBQQ0ENCg0KIyMjUHJlcHJvY2Vzbw0KIyMjI1JlbW92aWVuZG8gcGl4ZWxlcyBjb25zdGFudGVzICh2YXJpYWJpbGlkYWQgbnVsYSBvIG3DqW5pbWEpDQoNCioqUGVuZGllbnRlIGltcGxlbWVudGFyIMOpc3RhIHNlY2Npw6luKioNCg0KIyMjSW1wbGVtZW50YWNpw6luIGRlbCBBbGdvcml0bW8NCg0KYGBge3IsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQpQQ0EyIDwtIHByY29tcChpbWcsIHdpdGggPSBGLCBjZW50ZXIgID0gVCwgc2NhbGUuID0gRikNCmBgYA0KIyMjI0V2YWx1YWNpw6luDQoNCmBgYHtyfQ0KcGxvdChjdW1zdW0oUENBMiRzZGV2KS9zdW0oUENBMiRzZGV2KSoxMDAsDQogICAgIG1haW4gPSAiUHJvcG9yY2nDs24gQ3VtdWxhdGl2YSBkZSBsYSBWYXJpYW56YSBFeHBsaWNhZGEiLA0KICAgICB4bGFiID0gIkNhbnRpZGFkIGRlIENvbXBvbmVudGVzIFByaW5jaXBhbGVzIiwNCiAgICAgeWxhYiA9ICIlIERlIFZhcmlhbnphIEV4cGxpY2FkYSIpDQpgYGANCiMjI1Zpc3VhbGl6YWNpw6luIGRlbCBQQ0ENCg0KIyMjI1Byb3llY2Npw6luIGRlIGxvcyBkYXRvcyBlbiBlbCBlc3BhY2lvIGRlIGRpbWVuc2lvbmVzIGdlbmVyYWRvIHBvciBlbCBQQ0ENCmBgYHtyfQ0KcHJvamVjdGVkMiA8LSBzY2FsZShpbWcsIFBDQTIkY2VudGVyLCBQQ0EyJHNjYWxlKSAlKiUNCiAgUENBMiRyb3RhdGlvbg0KYGBgDQojIyMjVmlzdWFsaXphY2nDqW4gZGUgbG9zIGRhdG9zIGdlbmVyYWRvcyBwb3IgZWwgUENBDQpgYGB7cn0NCiMjS2VlcGluZyBvbmx5IHRocmVlIGRpbWVuc2lvbnMNCm5fZGltIDwtIDEwMA0KDQojI1Byb2plY3RpbmcgdGhlIGRhdGEgYmFjayB1c2luZyBvbmx5IHRoZSBuIHByaW5jaXBhbCBjb21wb25lbnRzDQpjb29yZF94MiA8LSBkYXRhLnRhYmxlKGltZywgcHJvamVjdGVkMlssMTpuX2RpbV0gJSolDQogICAgICAgICAgICAgdChQQ0EyJHJvdGF0aW9uKVsxOm5fZGltLF0pDQoNCiMjUGxvdHRpbmcgbmV3IGltYWdlDQoNCg0KICBtYXRJbWcgPC0gbWF0cml4KGFzLm51bWVyaWMoY29vcmRfeDJbaSwgMjg2MDoxLHdpdGggPSBGXSksDQogICAgICAgICAgICAgICAgbnJvdyA9IDUyLCBuY29sID0gNTIsIGJ5cm93ID0gRikNCiAgDQogIGltYWdlKG1hdEltZykNCiAgDQoNCmBgYA0KDQo=