Crea una cuenta o inicia sesi贸n

隆Contin煤a aprendiendo sin ning煤n costo! 脷nete y comienza a potenciar tu carrera

Autovalores y Autovectores

3/18
Recursos

Aportes 32

Preguntas 0

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

El tema de los autovalores y autovectores es mucho m谩s extenso y complejo de lo que se muestra en este video, pues la obtenci贸n de los valores de forma matem谩tica es compleja (si nunca has tenido una clase de algebra lineal).
Les recomiendo consultar videos o libros que expliquen el trasfondo matem谩tico
Aqu铆 algunos datos 煤tiles:

  • Para conseguir los autovalores y autoverctores de la matriz A, esta debe ser cuadrada (ej: 2x2, 3x3, 9x9鈥)
  • La matriz A tendr谩 tantos autovalores como dimensi贸n tenga A (ej: una Matriz de 3x3 tiene 3 autovalores, matriz de 2x2 tiene dos autovalores)
  • Los autovalores pueden repetirse
  • Estos autovalores son los que forman los autovectores
  • Los autovectores deben ser base, es decir, que desde esos autovectores se pueda generar todo el espacio o dem谩s vectores
  • Aqui les dejo un Link de los usos de autovectores y valores en ingenier铆a

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 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

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!

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.