Crea una cuenta o inicia sesión

¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Invierte en tu educación con el precio especial

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

12 Días
6 Hrs
53 Min
49 Seg

Autovalores y Autovectores

3/18
Recursos

Aportes 33

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Autovectores:
Son vectores cuya dirección no se modifica al aplicarle la trasformación de una matriz, el sentido y el tamaño sí puede variar. El valor que transforma el vector inicial en el vector final se llama autovalor.
Notas:

  • Sólo las matrices cuadradas tienen autovectores.
  • Hay tantos autovectores como la dimención de la matriz

Según entendí (y si me equivoco por favor me corrigen), un autovalor es aquel número que al ser multiplicado por un vector no modifica al vector en su dirección (ángulo) pero sí puede hacerlo en su magnitud y sentido.

para complementar un poco lo que se vio en clase consideremos la ecuación de los autovectores. En este sentido v será un autovector si:

A v = λ v

donde A es una matriz cuadrada y λ un autovalor. De esta forma vemos el soporte matemático de lo que se hizo en clase: al aplicar la matriz A al vector v, se obtuvo el mismo vector multiplicado por un escalar.

Autovalores y Autovectores.

Las transformaciones lineales ejercen trasformaciones sobre nuestros vectores. Un auto vector es cuando a un vector le aplicamos la transformación no sufre ninguna transformación.

# Importamos las bibliotecas

%matplotlib inline

import numpy as np
import matplotlib.pyplot as plt

# Importamos nuestra función para graficar. 
%run ".\\Funciones auxiliares\graficarVectores.ipynb"

# Vamos a definir 2 colores
orange_light = '#FF9A13'
blue_light = '#1190FF'

# Definimos una matriz
X = np.array([[3, 2], [4, 1]])
print(X)

# Definimos un vector 
v = np.array([[1], [1]])
print(v)

'''Recordemos que lo que estamos queriendo ver es un vector que cuando lo apliquemos la matriz siga siendo el mismo
vector, incluso cuando este sea un multiplo del vector original '''

# A nuestro vector transformado lo llamaremos u 
# Para transformarlo le vamos a aplicar el producto interno al vector original 
u = X.dot(v)
print(u)

# Graficamos los vectores

graficarVectores([u.flatten(), v.flatten()], cols=[orange_light, blue_light])

plt.xlim(-1, 6)
plt.ylim(-1, 6)

# Lo que obtuvimos es nuestro vector original que se llama v con color azul que fue expandido al 
# aplicarle nuestra transformación x de color naranja 

# Lo que esta ocurriendo es que nuestro auto valor es 5 y si lo multiplicamos. Entonces, un auto vector 
# Es aquel que cuando de aplico una matriz me devuelve el mismo vector con la misma dirección, pero con una 
# Amplitud distinta. Ósea, puede estar multiplicado por el autovalor.

lambda_1 = 5
lambda_1 * v

# Este valor no es único, aquí vamos a definir otro y tendrá la misma propiedad.  

s = np.array([[-1], [2]])
print(s)

# Para transformarlo le vamos a aplicar el producto interno al vector original 
t = X.dot(s)
print(t)

graficarVectores([t.flatten(), s.flatten()], cols=[orange_light, blue_light])

plt.xlim(-3,3)
plt.ylim(-3,3)

# Veamos que la dirección se mantiene, aunque haya un cambio de sentido 

Conclusión: Una matriz de 2x2 tiene 2 auto vectores y 2 autovalores asociados.

Un vector está compuesto por un módulo, dirección y sentido, un autovector obligatoriamente conservará su dirección, más no la magnitud y el sentido

  • Un autovector es aquel que cuando le aplico una matriz me devuelve el vector con la misma dirección pero puede tener una amplitud distinta. Puede estar multiplicado por el autovalor.

Leyendo este enlace ya me aclaré

Resumo:
Un vector es autovector de una matriz cuando el resultado de multiplicar la matriz por el autovector es igual a multiplicar ese mismo vector por un escalar . Este escalar se llama autovalor

Este video muestra QUE son los autovalorees y autovectores graficamente.
https://www.youtube.com/watch?v=YtgU1ozMgS0

Para que nos sirven los autovectores en Machine Learning? Cual es la aplicación practica o la razon del por que deberiamos saber esto. Espero puedan responderme esta duda!

Para aquellos aficionados a las matemáticos que gusten profundizar mas en el tema les dejo este blog, esta buenísimo

la fórmula es:
A v = λ v
donde A es una matriz cuadrada, ya sea 2x2, 3x3, 4x4, etc.
De esa misma matriz A, por medio de operaciones matemáticas, se puede obtener sus Valores Propios (λ) y sus Vectores propios (v).
primero se calculan los valores propios. (los valores propios son escalares, osea son números).
a partir de los valores propios y otras operaciones matemáticas es como se puede obtener los vectores propios.

Sin duda un tema para más estudio. En este video explican detalladamente los autovalores y autovectores

Le pedí a ChatGPT que haga una metáfora con Caperucita Roja y los Autovalores y Autovectores. Esto salio: #### ***El bosque como una matriz**:* *El **bosque** por el que Caperucita camina es como una **matriz**. Cada árbol y camino representan diferentes variables y relaciones en una transformación (la matriz). Sin embargo, no todas las direcciones en el bosque son iguales, algunas son más importantes que otras.* #### ***Caperucita como el autovector**:* *Caperucita Roja es como un **autovector**. Está caminando por una dirección específica en el bosque. El bosque, al estar lleno de caminos, la empuja y la tira en diferentes direcciones, pero **ella sigue su propio camino, sin desviarse**, porque está alineada con la dirección del bosque que la afecta de forma proporcional. En lugar de ser deformada o desviada, Caperucita simplemente avanza más rápido o más despacio, dependiendo de la **fuerza del bosque** (la transformación).* #### ***El lobo como el autovalor**:* *El **lobo** representa el **autovalor**. El lobo puede acelerar o ralentizar el paso de Caperucita dependiendo de su poder (el valor del autovalor). Si el lobo es grande (autovalor alto), empuja a Caperucita más rápido en la misma dirección. Si el lobo es pequeño (autovalor bajo), entonces el lobo ralentiza su paso. Si el lobo fuera cero, Caperucita se quedaría atrapada, sin poder avanzar (equivalente a un autovalor cero, donde la transformación es degenerada).* #### ***La moraleja matemática**:* *Así como Caperucita mantiene su dirección (como un autovector), los autovectores en una transformación permanecen en la misma dirección, aunque su "velocidad" o "fuerza" puede cambiar, dependiendo de los autovalores. Las direcciones importantes (autovectores) y sus respectivas fuerzas (autovalores) determinan cómo el bosque (la matriz) transforma todo lo que se mueve a través de él.*
Los vectores propios son vectores cuya dirección no se modifica al aplicarle la transformación de una matriz, el sentido y magnitud si pude variar. El vector propio permanece en su propio subespacio generado. El valor propio es el factor por el cual se estira o encoge el vector propio en la transformación, es el valor que transforma al vector propio. Sea A ∈ R ^n×n, λ ∈ R es autovalor de A si y sólo si existe un vector v ∈ R^n×1 no nulo tal que: A.v=λ.v,v≠0V Sus características son: Para obtener un vector y valor propio la matriz debe de ser cuadrada Los autovalores forman a los vectores propios Los vectores propios deben de ser base, es decir, a partir de estos se puede generar todo el espacio Los vectores propios nos dicen las características más relevantes de cualquier conjunto de datos
En MAC, para llamar a la función creada -al igual que la hizo el profe-, se escribe lo siguiente: %run "..//funciones\_auxiliares/graficarVectores.ipynb"
**IMPORTANCIA DE LOS AUTO VALORES Y AUTO VECTORES EN MACHINE LEARNING** En el contexto de machine learning, los autovalores y autovectores son conceptos importantes relacionados con la descomposición espectral de matrices. Esta descomposición puede ser útil en varias tareas de análisis y modelado. Aquí hay algunas aplicaciones comunes en las que los autovalores y autovectores se utilizan en machine learning: 1. **Reducción de dimensionalidad**: Los autovalores y autovectores pueden ser utilizados en técnicas de reducción de dimensionalidad, como la Análisis de Componentes Principales (PCA). En PCA, los autovectores representan las direcciones principales de variación en los datos, y los autovalores indican la cantidad de variación en cada dirección. Al seleccionar un subconjunto de autovectores con los autovalores más grandes, puedes reducir la dimensionalidad de tus datos manteniendo la mayor cantidad posible de información. 2. **Transformaciones lineales**: Los autovectores son útiles para entender transformaciones lineales en los datos. Por ejemplo, en el análisis de imágenes, los autovectores de una matriz de covarianza pueden representar direcciones específicas de variación en las imágenes, lo que podría ser útil para la identificación de características. 3. **Resolución de sistemas de ecuaciones lineales**: Los autovalores y autovectores también pueden ser utilizados para resolver sistemas lineales de ecuaciones diferenciales, que son comunes en problemas de machine learning, especialmente en aprendizaje no supervisado y optimización. 4. **Identificación de patrones latentes**: En algunos casos, los autovectores pueden revelar patrones latentes o características fundamentales en los datos que no son fácilmente observables directamente. 5. **Procesamiento de señales y reconocimiento de patrones**: En aplicaciones de procesamiento de señales y reconocimiento de patrones, los autovalores y autovectores pueden ser utilizados para extraer características representativas o para realizar análisis espectral. En resumen, los autovalores y autovectores proporcionan herramientas poderosas para analizar y transformar datos en el contexto de machine learning. Su aplicación depende del problema específico y del tipo de datos con el que estés trabajando.
**Este docente explica bien que son los autovalores y auto vectores** [**https://www.youtube.com/watch?v=GHPOEhUkHPU**](https://www.youtube.com/watch?v=GHPOEhUkHPU)**** [**https://www.youtube.com/watch?v=KH\_Zu2CUrtQ**](https://www.youtube.com/watch?v=KH_Zu2CUrtQ)

Vectores Propios = AutoValores
Valores Propios = AutoValores

Vector Propio: Se mantiene en su subespacio generado.
Valor Propio: Magnitud del cambio despues de la transformacion de un vector propio.

Los autovalores y autovectores son conceptos fundamentales en el álgebra lineal y tienen aplicaciones en diversos campos, como la física, la ingeniería y la informática.

  • Dado un espacio vectorial V, un autovector de una transformación lineal T: V -> V es un vector no nulo v en V que se transforma en un múltiplo escalar de sí mismo bajo la acción de T. Es decir, si T(v) = λv, donde λ es un escalar llamado autovalor asociado al autovector v.

  • En términos más matemáticos, si v es un autovector de T, entonces cumple la siguiente ecuación:

T(v) = λv

  • Aquí, λ es el autovalor correspondiente al autovector v. Los autovectores representan direcciones especiales en el espacio vectorial que se mantienen inalteradas por la transformación lineal, solo cambiando su escala.
import numpy as np

# Definir una matriz de ejemplo
A = np.array([[2, 1],
              [4, 3]])

# Calcular los autovalores y autovectores
autovalores, autovectores = np.linalg.eig(A)

# Imprimir los autovalores
print("Autovalores:")
print(autovalores)

# Imprimir los autovectores
print("Autovectores:")

no entendi muy bien, el autovector mantiene a la matriz con el mismo sentido, pero si que la pueda achicar o agrandar, pero entonces que es el autovalor?

Un autovector es aquel q al aplicarle una matriz , devuelve el vector con la misma dirección pero puede que con un amplitud distinta

No necesariamente, ya que el vector nulo siempre se mapea a su representante nulo en el espacio mapeado

import plotly.figure_factory as ff

def graficarVectoresplotly(vector1=[0, 0], vector2=[0, 0], vector3=[0, 0], vector4=[0, 0], xlimit=[-5, 5], ylimit=[-5, 5]):
    fig1 = ff.create_quiver([0], [0], [vector1[0]], [vector1[1]], scale=1, arrow_scale=0.1)
    fig2 = ff.create_quiver([0], [0], [vector2[0]], [vector2[1]], scale=1, arrow_scale=0.1)
    fig3 = ff.create_quiver([0], [0], [vector3[0]], [vector3[1]], scale=1, arrow_scale=0.1)
    fig4 = ff.create_quiver([0], [0], [vector4[0]], [vector4[1]], scale=1, arrow_scale=0.1)
    fig1.add_traces(data = fig2.data + fig3.data + fig4.data, )
    fig1.update_layout(showlegend=False)
    fig1.update_xaxes(zeroline=True, zerolinewidth=2, zerolinecolor='red', range=xlimit)
    fig1.update_yaxes(zeroline=True, zerolinewidth=2, zerolinecolor='red', range=ylimit, scaleanchor = "x", scaleratio = 1)
    fig1.show()
    
graficarVectoresplotly(vector, vector_transformado)

Basicamente un vector A viene a ser un autovector de una matriz si, al multiplicar la matriz M por dicho vector A, obtienes otro vector B y este Vector B es igual a multiplicar el Vector A por un escalar E ( puedes er positivo o negativo).

M * A = B * E

  • Al vector A se le conoce como autovector de la matriz M
  • Al escalar E se le conoce como autovalor de la matriz M.

Un autovector de una matriz de 2x2 es aquel que cuando le aplico la matriz al autovector:
No sufre ninguna transformacion, misma direccion pero amplitud distinta, puede cambiar el sentido.

Si a alguien le sirve ver las matrices representadas al momento de hacer la clase , hice esta función:

#Recibe 2 matricices y las imprime de forma simbólica como producto punto
def imprimeMatrices(matriz_a, matriz_b):
  filas_a = matriz_a.shape[0]
  filas_b = matriz_b.shape[0]
  cols_a = matriz_a.shape[1] 
  cols_b = matriz_b.shape[1] 
 
  for i in range(max(filas_a,filas_b)):
    print("|", end=" ")
    for j in range(cols_a + cols_b):
      if j <= cols_a-1:
        print(round(matriz_a[i][j],2), end="  ")
        if j == cols_a-1:
          print("|  |", end=" ")
      elif j >= cols_a and i <= filas_b-1:
        print(round(matriz_b[i][j-cols_a],2), end="  ")
        if j == (cols_a+cols_b-1):
          print("|")
      elif i > filas_b-1:
        print("  ", end=" ")
        if j == (cols_a+cols_b-1):
          print("|")

Ejemplo usando los datos de la clase:

imprimeMatrices(X,v)
u = X.dot(v)
print(u)

Da como salida:

| 3  2  |  | 1  |
| 4  1  |  | 1  |
[[5]
 [5]]




  • Una matriz de 2x2 tiene dos autovectores con dos autovalores asociados.

Es decir, el último ejemplo también fue un autovector?

.flatten() : Toma un vector y lo devuelve en una tira.