¿Te resulta más fácil leer con fondo crema, un tono de color, más contraste o un texto más grande? Elige tus colores y tu texto una sola vez, para todas las páginas.

Lección gratuita

Autovectores y aprendizaje automático

Después de esta lección: Puedo decir qué es un autovector y por qué lo usa el aprendizaje automático.

Lección de 65 min1 comandoLaboratorio JupyterLab de ciencia de datos: pandas, Matplotlib y scikit-learn en el navegador

Un autovector es una dirección estirada

Un autovector de una matriz es un vector que la matriz solo estira o encoge, sin cambiarle la dirección. El número por el que lo estira se llama autovalor.

Sirven para encontrar la dirección principal de unos datos y reducir su tamaño sin perder lo importante. Al acabar sabrás reconocer un autovector y explicar por qué el aprendizaje automático lo usa.

Al final de esta lección

Nota

Puedo decir qué es un autovector y por qué lo usa el aprendizaje automático.

Palabras clave

PalabraQué significa
Autovectorun vector que la matriz solo estira
Autovalorel número por el que se estira
Iteración de potenciasmultiplicar una y otra vez por la matriz
Reducción de dimensionesdescribir los datos con menos números
Dirección principalel sentido en que más se reparten los datos

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Casi todos los vectores cambian de dirección

Multiplica la matriz [[2, 1], [1, 2]] por [1, 0]. Sale [2, 1], que apunta a otro lado. La matriz ha estirado y torcido el vector a la vez.

Pero hay vectores especiales. Con [1, 1] sale [3, 3]: el mismo sentido, tres veces más largo. Ese es un autovector, y 3 es su autovalor.

Ejemplo resuelto: tres vectores y la misma matriz

VectorMatriz por el vectorQué pasa
[1, 0][2, 1]Cambia de dirección: no es autovector
[1, 1][3, 3]Mismo sentido, por 3: autovalor 3
[1, -1][1, -1]Mismo sentido, por 1: autovalor 1

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Autovalores y tres productos

Comando
docker exec jupyter python3 -c "import numpy as np; A=np.array([[2,1],[1,2]]); print(np.linalg.eigvalsh(A).tolist(), ([email protected]([1,1])).tolist(), ([email protected]([1,-1])).tolist(), ([email protected]([1,0])).tolist())"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Multiplicar muchas veces revela la dirección principal

Elige un vector cualquiera y multiplícalo una y otra vez por la matriz. Cada paso estira más la dirección que más estira la matriz, y esa acaba mandando.

Se llama iteración de potencias. Si divides el resultado entre su longitud en cada paso, los números no crecen sin freno.

Ejemplo resuelto: la iteración desde [1, 0]

PasoVectorCociente de las componentes
0[1, 0]No se puede dividir entre 0
1[2, 1]2 / 1 = 2
2[5, 4]5 / 4 = 1,25
3[14, 13]14 / 13 = 1,077
4[41, 40]41 / 40 = 1,025

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Repite el producto y mira el cociente

Código: python
# La matriz y un vector cualquiera.
matriz = [[2, 1], [1, 2]]
v = [1, 0]

for paso in range(4):
    nuevo = [0, 0]
    for i in range(2):
        nuevo[i] = matriz[i][0] * v[0] + matriz[i][1] * v[1]
    v = nuevo
    print("paso", paso + 1, ":", v)

print("cociente de las componentes:", v[0] / v[1])
# Cambia 4 por 8 y vuelve a ejecutar.
# ¿Hacia qué número se acerca el cociente?

Un error muy común

Advertencia

Mucha gente cree que todo vector tiene autovalor. No es así. Un autovector es solo el que la matriz no tuerce. Con [[2, 1], [1, 2]], [1, 0] no lo es, aunque sea un vector válido. Comprueba siempre que el resultado apunta igual.

El aprendizaje automático usa autovectores para reducir dimensiones

Unos datos con cien columnas son difíciles de dibujar y lentos de procesar. Muchas veces las columnas se parecen, y los puntos se reparten sobre pocas direcciones.

La dirección principal es un autovector de la matriz que mide cómo varían juntas las columnas. Si guardas solo la posición sobre esa dirección, describes cada punto con un número.

Ejemplo resuelto: de dos números a uno

PuntoDos númerosPosición sobre [1, 1]Qué se pierde
A[1, 1]2Casi nada: está sobre la dirección
B[3, 3]6Nada: está sobre la dirección
C[5, 4]9Muy poco: casi sobre la dirección
D[4, 2]6Algo: se separa de la dirección

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Para ir más lejos: componentes principales

Esta técnica de reducir dimensiones se llama análisis de componentes principales, y en inglés PCA. Calcula los autovectores de una matriz que resume cómo varían las columnas.

Busca dos columnas de unos datos que crezcan juntas, por ejemplo la altura y el peso. Explica con tus palabras qué dirección principal tendrían.

Sobre este laboratorio y su código: Laboratorio JupyterLab de ciencia de datos: pandas, Matplotlib y scikit-learn en el navegador

¿Enseñas a una clase? Asigna este módulo a tus alumnos con guía del profesor, tareas con corrección automática y un laboratorio para cada alumno.