Saltar al contenido principal

Eigendecomposición: Guía para principiantes sobre factorización de matrices

Explora los fundamentos de la eigendecomposición y sus aplicaciones en la ciencia de datos y el aprendizaje automático.
Actualizado 9 ene 2025  · 7 min de lectura

Las operaciones con matrices constituyen el núcleo de los cálculos en el aprendizaje automático, el análisis estadístico y la informática científica. Por ejemplo, muchas operaciones en estadística requieren inversión de matrices, diagonalización y exponenciación. Estas operaciones son costosas desde el punto de vista computacional, pero existen métodos para descomponer una matriz en un conjunto más pequeño de matrices y aumentar así la eficiencia computacional. Estas operaciones se denominan generalmente factorización de matrices, y según la naturaleza de las matrices más pequeñas obtenidas, tienen nombres específicos. 

La eigenecomposición es un método de factorización de matrices en el que los valores y vectores propios constituyen los elementos de dichas matrices. Comprender la eigendecomposición matricial proporciona a los ingenieros de aprendizaje automático y ciencia de datos una base matemática para entender métodos como la reducción de dimensiones y la aproximación matricial. Después de leer este artículo, sigue el curso Álgebra Lineal para la Ciencia de Datos en R para aprender los temas matemáticos centrales que sustentan la ciencia de datos.

¿Qué es la Eigendecomposición?

La eigendecomposición es un método de factorización de matrices en el que una matriz cuadrada se factoriza (descompone) en tres matrices multiplicativas. Esta factorización se denomina eigenecomposición porque las entradas de las matrices son valores propios y vectores propios de la matriz cuadrada original. Matemáticamente, una matriz cuadrada A puede factorizarse en tres matrices tales que:

Ecuación de eigendecomposición

donde P es la matriz de los vectores propios de A, Des una matriz diagonal cuyos elementos no nulos son los valores propios ordenados de la matriz, y P-1 es la inversa de la matriz P.

Las matemáticas de la eigendecomposición

Demostraré mediante un ejemplo las operaciones matemáticas para derivar analíticamente la eigendecomposición de una matriz cuadrada. Nuestra matriz de ejemplo es la matriz cuadrada de 2x2 A. Si te atascas con las técnicas de combinación de matrices, sigue nuestro curso Linear Algebra for Data Science in R para que te sientas cómodo con el funcionamiento de la multiplicación de matrices. Ejemplo de matriz cuadrada

Para realizar la eigenecomposición de la matriz A, necesitamos deducir los valores propios y los correspondientes vectores propios de esta matriz cuadrada. Podemos utilizar el polinomio característico de la matriz para calcular los valores propios y los vectores propios de esta matriz. Así que si no estás familiarizado con esta parte, lee Ecuación Característica: Todo lo que necesitas saber para la Ciencia de Datos primero. 

Ahora, a partir de la definición de polinomio característico, tenemos:

Polinomio característico

El polinomio característico de nuestra matriz A es entonces pA(λ) = λ2 - 18λ + 56. Podemos hallar las raíces de este polinomio igualándolo a cero para obtener los valores propios: 

Por tanto, los valores propios son λ1 = 14 y λ1 = 4. A partir de los valores propios, podemos obtener los vectores propios de una matriz utilizando (A - λI)X = 0 para cada valor propio único:

En λ1 = 14 introducimos 14 y resolvemos el sistema homogéneo de ecuaciones:

Lo que da un eigespacio unidimensional (es decir, un vector base). Realizamos el mismo proceso para λ1 = 4 y obtenemos

Ahora que hemos obtenido los valores propios y los vectores propios de la matriz Apodemos escribir la eigencomposición de A como

Eigendecomposición de la matriz A

En el que construimos P juntando los dos vectores propios (es decir, poniéndolos uno al lado del otro) y colocamos los valores propios (por orden decreciente) en la diagonal de la matriz D. 

Por supuesto, podemos realizar la eigenecomposición con un sistema informático y un lenguaje de programación como Python o R. Recuerda que Python y R pueden producir eigenvectores normalizados (en escala 0-1) (es decir, base ortonormal). Es importante tener esto en cuenta cuando se intenta reconstruir la matriz A a partir de PDP-1 con fines de verificación.

Aplicaciones de la Eigendecomposición en la Ciencia de Datos

La eigendecomposición desempeña un papel importante en el aprendizaje automático y la estadística. En el aprendizaje automático, la eigendecomposición se utiliza para los métodos de reducción de dimensiones, como el ACP. En el ACP, buscamos nuevas dimensiones (direcciones) para las coordenadas originales de alta dimensión que conserven la máxima información. La eigendecomposición de la matriz revela los valores propios, y los vectores propios con mayores valores propios retienen mayor información, por lo que se designan como componentes principales de los datos.

Realización de la Eigendecomposición en Python y R

Después de haber aprendido a realizar la eigendecomposición con lápiz y papel, ahora podemos realizar la eigendecomposición utilizando un ordenador y un lenguaje de programación, como Python y R en unas pocas líneas. Recuerda que los vectores propios calculados en Python y R están normalizados (en comparación con los lenguajes o paquetes de programación simbólica, como SymPy en Python).

Eigendecomposición en Python

Para realizar la eigendecomposición en Python, es necesario instalar e importar al entorno el módulo NumPy. El código siguiente ilustra cómo realizar la eigendecomposición en Python para la matriz cuadrada no simétrica A:

import numpy as np

A = np.array([[6,8], [2,12]]) 

eigVals, eigVecs = np.linalg.eig(A)

print(eigVals)
print(eigVecs)
[ 4. 14.]
[[-0.9701425  -0.70710678]
 [ 0.24253563 -0.70710678]]
 # Reconstruct the original matrix A
D = np.diag(eigVals)
A_reconstructed = eigVecs @ D @ np.linalg.inv(eigVecs)

print(A_reconstructed)
[[ 6.  8.]
 [ 2. 12.]]

Eigendecomposición en R

La eigendecomposición en R puede realizarse mediante la función incorporada eigen() y, por tanto, no es necesario instalar e importar un paquete para la eigendecomposición de matrices pequeñas. El siguiente código en R realiza la eigenecomposición de la matriz A (R ordena los valores propios en orden decreciente, por lo que el orden de los vectores propios es distinto al de la salida NumPy de Python):

A <- matrix(c(6,8,2,12), 2,2, byrow = TRUE)

print(A)

eDecomp <- eigen(A)
eigValues <- eDecomp$values
eigVectors <- eDecomp$vectors

print(eigValues)
print(eigVectors)
[1] 14  4
           [,1]       [,2]
[1,] -0.7071068 -0.9701425
[2,] -0.7071068  0.2425356
A_Reconstructed <- eigVectors %*% diag(eigValues) %*% (solve(eigVectors))

print(A_Reconstructed)
Show in New Window
     [,1] [,2]
[1,]    6    8
[2,]    2   12

Eigendecomposición vs. Descomposición en valores singulares (SVD)

La eigendecomposición y la descomposición en valores singulares (SVD) son dos notables métodos de factorización de matrices que se utilizan en el aprendizaje automático y la informática científica. Aunque ambos métodos factorizan una matriz en tres matrices, tienen algunas diferencias:

  • La eigendecomposición sólo es aplicable a matrices cuadradas, mientras que la SVD puede aplicarse tanto a matrices cuadradas como rectangulares.
  • En la SVD, las matrices resultantes incluyen puntuaciones singulares, mientras que las de eigendecomposición incluyen valores propios.
  • Como la SVD puede acomodar matrices no cuadradas, tiene aplicaciones más amplias que la eigendecomposición.

Conclusión

En este breve artículo sobre álgebra lineal, aprendimos sobre la eigendecomposición, cómo realizarla con lápiz y papel, y cómo calcularla utilizando Python y R. Aprendimos cómo se utiliza la eigendecomposición en algoritmos de aprendizaje automático como el ACP. 

Si estás muy interesado en convertirte en analista o científico de datos, te recomiendo encarecidamente que sigas nuestro curso de Álgebra Lineal para la Ciencia de Datos en R, para que tengas una base sólida en matemáticas aplicadas y programación. Además, inscríbete en nuestra carrera completa de Científico de Aprendizaje Automático en Python para explorar el aprendizaje supervisado, no supervisado y profundo. 

Conviértete en un Científico ML

Mejora tus conocimientos de Python para convertirte en un científico del aprendizaje automático.
Empieza a aprender gratis

Vahab Khademi's photo
Author
Vahab Khademi
LinkedIn

Mi formación educativa ha sido en matemáticas y estadística. Tengo amplia experiencia en modelado estadístico y aplicaciones de aprendizaje automático. Además, investigo sobre las matemáticas del ML.

Preguntas frecuentes sobre la eigendecomposición

¿Qué es la eigendecomposición?

La eigenecomposición es el proceso de descomponer una matriz cuadrada en sus valores y vectores propios.

¿Cuándo es posible la eigendecomposición?

La eigendecomposición sólo es posible para matrices cuadradas. Sin embargo, no todas las matrices cuadradas pueden descomponerse de este modo. Una matriz debe ser diagonalizable, lo que normalmente significa que debe tener un conjunto completo de vectores propios linealmente independientes. Para las matrices que no cumplen este criterio (como las matrices no diagonalizables o defectuosas), la eigendecomposición no es posible en el sentido habitual.

Temas

Aprende con DataCamp

curso

Linear Algebra for Data Science in R

4 hr
16K
This course is an introduction to linear algebra, one of the most important mathematical topics underpinning data science.
Ver detallesRight Arrow
Comienza el curso
Ver másRight Arrow
Relacionado

blog

La maldición de la dimensionalidad en el aprendizaje automático: Retos, repercusiones y soluciones

Explore la maldición de la dimensionalidad en el análisis de datos y el aprendizaje automático, incluidos sus retos, efectos en los algoritmos y técnicas como PCA, LDA y t-SNE para combatirla.
Abid Ali Awan's photo

Abid Ali Awan

7 min

tutorial

Descomposición QR para el aprendizaje automático

Conoce la descomposición QR, la técnica de factorización de matrices que descompone la matriz A en el producto de una matriz ortogonal Q y una matriz triangular superior R. Practica el proceso de Gram-Schmidt en programación R.
Josef Waples's photo

Josef Waples

12 min

tutorial

Tutorial de análisis de componentes principales en R

En este tutorial, aprenderás a utilizar el PCA (análisis de componentes principales) de R para extraer datos con muchas variables y crear visualizaciones para mostrar esos datos.
Zoumana Keita 's photo

Zoumana Keita

15 min

tutorial

Las 15 fórmulas básicas de Excel que todo el mundo debe conocer

Aprende a añadir fórmulas aritméticas, de cadena, de series temporales y complejas en Microsoft Excel.
Abid Ali Awan's photo

Abid Ali Awan

15 min

tutorial

Matrices en Python

Matrices en Python con ejemplos de código. Aprende a crear e imprimir matrices con Python NumPy hoy mismo.
DataCamp Team's photo

DataCamp Team

3 min

Ver másVer más