Comprende en pocos minutos cómo los eigenvectores revelan los ejes fundamentales de una transformación lineal y por qué son clave en machine learning. Con un ejemplo claro en NumPy y una visualización en Matplotlib, verás cómo se verifica A·v = λ·v y cómo esto conecta con PCA.
¿Qué son eigenvectores y eigenvalores y por qué importan en machine learning?
Los eigenvectores son direcciones del espacio que una matriz A no rota: solo las escala o invierte su sentido. Si v es un eigenvector y λ su eigenvalor, la relación es A·v = λ·v. La matriz transforma v, pero el resultado queda sobre la misma línea.
Si λ = 2: el vector duplica su longitud.
Si λ = 0.5: el vector se reduce a la mitad.
Si λ = −1: el vector invierte su sentido, misma línea.
Esto es esencial en machine learning: al analizar la matriz de covarianza, sus eigenvectores marcan las direcciones de máxima varianza y los eigenvalores indican cuánta información hay en cada dirección. Así se fundamenta PCA (análisis de componentes principales).
¿Cómo obtener y verificar eigenvectores con NumPy paso a paso?
El flujo es directo en Google Collab: crear la matriz, calcular eigenvalores y eigenvectores, y comprobar la ecuación A·v = λ·v numéricamente.
import numpy as np
import matplotlib.pyplot as plt
# 1) Matriz de transformaciónA = np.array([[3,1],[1,2]])# 2) Eigenvalores y eigenvectores# - eigenvalores: array de λ# - eigenvectores: columnas son los v correspondienteseigenvalores, eigenvectores = np.linalg.eig(A)print(f"eigenvectores:\n{eigenvectores}")print(f"eigenvalores:\n{eigenvalores}")# 3) Verificación de A·v = λ·v para el primer par (λ1, v1)v1 = eigenvectores[:,0]lambda1 = eigenvalores[0]AV1 = A @ v1
lambda1_v1 = lambda1 * v1
print(f"AV1: {AV1}")print(f"lambda1*v1: {lambda1_v1}")
La matriz de ejemplo es A = [[3, 1], [1, 2]].
NumPy retorna: eigenvalores y una matriz cuyas columnas son eigenvectores.
Al imprimir, ambos lados coinciden: AV1 y λ1·v1 dan el mismo vector.
En el ejemplo mostrado, se observa un vector como (3.07, 1.90) y un factor de escala ≈ 3.61 para el primer eigenvector.
¿Qué devuelve np.linalg.eig y cómo interpretarlo?
eigenvalores: array de λ, uno por cada dirección propia de A.
eigenvectores: matriz donde cada columna es un v que cumple A·v = λ·v.
Índices alineados: eigenvalores[i] corresponde a la columna i de eigenvectores.
¿Cómo visualizar el escalado del eigenvector con Matplotlib?
La gráfica refuerza la intuición: el vector original y su versión transformada quedan en la misma línea, solo escalados o invertidos.
plt.figure(figsize=(8,8))# Vector original v1 en azulplt.quiver(0,0, v1[0], v1[1], angles='xy', scale_units='xy', scale=1, color='blue', label='eigenvector original')# Vector transformado A·v1 (equivalente a λ1·v1) en rojoplt.quiver(0,0, AV1[0], AV1[1], angles='xy', scale_units='xy', scale=1, color='red', label='eigenvector escalado')plt.xlim(0,4); plt.ylim(0,4)plt.title('Un eigenvector y su transformación')plt.legend(); plt.grid(True); plt.show()
Quiver dibuja flechas desde el origen: claro para comparar dirección y escala.
Puedes graficar AV1 o λ1·v1: verás que son idénticos.
Ajusta límites y cuadrícula para legibilidad.
¿Cómo conecta esto con PCA desde la covarianza?
La matriz de covarianza captura la forma de los datos.
Sus eigenvectores indican ejes de máxima varianza.
Sus eigenvalores cuantifican información por componente.
Dominar este análisis es el paso previo para aplicar PCA con confianza.
¿Te animas a practicar? Explica en una frase qué ocurre si un eigenvalor es negativo (pista: el vector invierte su sentido). Luego, crea una matriz 2×2 con un eigenvalor negativo, grafica ambos vectores con quiver y comparte tus resultados en los comentarios.