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
| Palabra | Qué significa |
|---|---|
| Autovector | un vector que la matriz solo estira |
| Autovalor | el número por el que se estira |
| Iteración de potencias | multiplicar una y otra vez por la matriz |
| Reducción de dimensiones | describir los datos con menos números |
| Dirección principal | el 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
| Vector | Matriz por el vector | Qué 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
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]
| Paso | Vector | Cociente 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
# 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
| Punto | Dos números | Posición sobre [1, 1] | Qué se pierde |
|---|---|---|---|
| A | [1, 1] | 2 | Casi nada: está sobre la dirección |
| B | [3, 3] | 6 | Nada: está sobre la dirección |
| C | [5, 4] | 9 | Muy poco: casi sobre la dirección |
| D | [4, 2] | 6 | Algo: 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.