¿Qué son los autovectores y cuál es su importancia?

Autor: | Última modificación: 14 de noviembre de 2022 | Tiempo de Lectura: 3 minutos
Temas en este post:

Los autovectores son una característica de la matriz que representa la desviación típica de la muestra de datos en cuanto cambian su dirección, marcada por su correspondiente autovector.

Si ordenamos los autovectores por su valor, veremos que la mayor parte de la variación se encuentra en los primeros autovalores del autovector asociado. El resto aportan cada vez menos información.

Ejemplo de autovectores

Los autovalores y autovectores de una matriz se representan con un sistema de ecuaciones con el que resolvemos el sistema. Estos pueden ayudarnos a entender variaciones del conjunto de datos que hemos obtenido.

Veamos ahora un ejemplo de los autovectores para que quede más claro:

plot (log10 (pr_pics$sdev), t = 'l', ylim = c (0,2))
autovectores

Observamos que con los primeros 5 o 6 componentes principales ya tenemos una gran cantidad de variables.

Para entender bien qué es un componente, veamos lo siguiente.Tenemos una matriz que representa un componente principal en donde si todo es 0, la salida va a ser 0; pero ¿qué ocurre si el primer elemento del componente principal no es 0, sino 1?

t_pic <- matrix (rep (0, ncol (pr_pics$rotation)), nrow = 1)
#t_pic [1] <- 1
#t pic[1:50] <- 1
t_pic [100] <- 1

pic_normalizada <- t_pic %>% t (pr_pics$rotation)
summary (array(pic_normalizada))
pic_normalizada <- (pic_normalizada - min (pic_normalizada))
pic_normalizada <- pic_normalizada / max (pic_normalizada)
plot_row_image (pic_normalizada)
¿Qué son los autovectores y cuál es su importancia? 1
¿Qué son los autovectores y cuál es su importancia? 2

Ya podemos ver que la imagen claramente es una cara. Si, por ejemplo, a los 50 primeros componentes principales les asignamos un valor 1 y al resto 0:

¿Qué son los autovectores y cuál es su importancia? 3

Tenemos, pues, distintas caras que se han ido sobreponiendo.

Una vez que tenemos una imagen transformada con sus componentes principales, podemos borrar los que corresponden a autovalores con menor peso.

De esta forma estaremos perdiendo información, pero la mínima posible, con lo que la reconstrucción posterior de la imagen seguirá siendo posible, aunque con pérdidas.

Se puede demostrar que para las imágenes del conjunto de train, si las pasamos al dominio de PCA, eliminamos los componentes menos importantes y las volvemos a transformar al dominio de las imágenes. Estas habrán sufrido una pérdida de información mínima, es una compresión con pérdidas muy eficiente.

Si utilizamos una imagen de test y aplicamos el mismo proceso, aunque el resultado no será tan bueno, también veremos que es suficientemente bueno. Este método se puede utilizar para comprimir imágenes que comparten características comunes.

# Por motivos didácticos crearemos una función similar a predict:
transform_pca <- function (pca_result = pr_pics, row) {
v <- matrix (row, nrow = 1)
v_normalizada <- (v - pca_result$center) / pca_result$scale
v_normalizada %*% pca_result$rotation
}

# Y una función que haga su inversa:
inv transform_pca <- function (pca_result = pr_pics, row) {
v <- matrix (row, nrow = 1)
pic_normalizada <- v %*% t (pca_result$rotation)
pic <- pic_normalizada * pca_result$scale + pca_result$center
pic [pic < 0] <- 0
pic [pic > 1] <- 1
pic
}

orig_pic <- train_matrix [100, ]
#orig pic <- test_matrix [300, ]

number_of_pca_components <- 400
t_pice <- transform_pca (row = orig_pic)
t_pic [number_of_pca_components: length (t_pic)] <- 0
dim (t_pic)

pic <- inv_transform_pca (row = t_pic)
plot_row_image (pic)
plot_row_image (orig_pic)
¿Qué son los autovectores y cuál es su importancia? 4

¿Qué sigue?

Ahora que hemos visto qué son los autovectores, cómo funcionan y cuál es la importancia de los componentes en estos, podemos pasar al siguiente nivel. Para ello, te ofrecemos el Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp, donde podrás formarte a nivel teórico y práctico en todo lo que necesitas para convertirte en un experto del sector IT. ¡Anímate y solicita más información para continuar forjando tu futuro!

👉 Descubre más del Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp ¡Descarga el temario!

👉 Prueba el Bootcamp Gratis por una Semana ¡Empieza ahora mismo!

👉 Conoce nuestros otros Bootcamps en Programación y Tecnología

[email protected]

¿Trabajo? Aprende a programar y consíguelo.

¡No te pierdas la próxima edición del Aprende a Programar desde Cero Full Stack Jr. Bootcamp!

 

Prepárate en 4 meses, aprende las últimas tecnologías y consigue trabajo desde ya. 

 

Solo en España hay más de 120.400 puestos tech sin cubrir, y con un sueldo 11.000€ por encima de la media nacional. ¡Es tu momento!

 

🗓️ Próxima edición: 13 de febrero

 

Reserva tu plaza descubre las becas disponibles.