Los cursos de python con álgebra lineal y este tienen mucho potencial, y eso es por que este hombre es un muy bueno explicando, sin duda uno de los mejores profesores en platzi
Transformaciones lineales y descomposición de matrices
Lo que aprenderás sobre álgebra lineal aplicada
Podemos y debemos pensar a las matrices como transformaciones lineales
Autovalores y Autovectores
Cómo calcular los autovalores y autovectores
Descomposición de matrices
¿Cómo descompongo una matriz no cuadrada (SVD)?
Las tres transformaciones
Aplicación de las matrices D y V y U y su efecto en la transformación
¿Cómo interpretar los valores singulares?
Aplicaciones de SVD a una imagen
Una imagen es una matriz
Apliquemos la descomposición SVD a una imagen
Buscando la cantidad de valores singulares que nos sirvan
¿Qué es una pseudoinversa de Moore Penrose y cómo calcularla?
Usando la pseudo inversa para resolver un sistema sobredeterminando
Aplicando Álgebra Lineal: Análisis de Componentes Principales (PCA)
¿Qué es PCA?
Preparando el conjunto de imágenes para aplicar PCA
Apliquemos PCA a un conjunto de imágenes
Cierre del curso
Crea una cuenta o inicia sesión
¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera
Aportes 28
Preguntas 5
Los cursos de python con álgebra lineal y este tienen mucho potencial, y eso es por que este hombre es un muy bueno explicando, sin duda uno de los mejores profesores en platzi
🤔🤔 Si toman el primer autovector que arrojó numpy, resulta que es ortogonal a los demas que calculamos 🤔🤔
"Los autovectores son los mismos. Pueden cambiar en amplitud o sentido, pero su dirección se mantiene"
El Eigen Vector se usa mucho en el análisis de redes sociales por medio de grafos. Este identifica la importancia de un nodo sobre la misma red.
# Importamos las bibliotecas
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
# Creamos una matriz
X = np.array([[3, 2], [4, 1]])
print(X)
# Vemos la biblioteca para calcular los autovectores y autovalores de Numpy
print(np.linalg.eig(X))
# Pedimos que muestre los autovalores
autovalores, autovectores = np.linalg.eig(X)
print(autovalores)
# Pedimos cual es el autovalor asociado a cada autovector
print(autovectores[:, 0])
# Mostramos el autovector numero 1
print(autovectores[:, 1])
# Importamos nuestra función para graficar.
%run ".\\Funciones auxiliares\graficarVectores.ipynb"
# Definamos un array
v = np.array([[-1], [2]])
# Calculamos la tranformacion con el calculo del producto interno
Xv = X.dot(v)
# Y lo comparamos con el autovector anterior
v_np = autovectores[:, 1]
print(Xv)
print(v_np)
# Graficamos al que calculamos con el producto interno, el vector original y el que nos devolvió el método de Numpy
graficarVectores([Xv.flatten(), v.flatten(), v_np], cols = ['green','orange','blue'])
plt.ylim(-4,2)
plt.xlim(-7,3)
Entonces, podemos ver que el autovector encontrado por Numpy es un múltiplo del autovector que nosotros propusimos. Eso quiere decir que los autovectores son lo mismo, solo que pueden variar en amplitud o en sentido, pero la dirección se mantiene. Si tenemos un autovector, menos ese autovector también es autovector.
Que buen curso definitivamente uno de los mejores de esta carrera , excelente explicación .
Escribo esta respuesta que le di a un compañero porque es una pregunta frecuente y puede que sirva y servirá para varios:
Lo que sucede en la combinación lineal de una matriz con un vector es que se transforma el espacio, de ahí su nombre “transformación lineal”. Entonces, los ejes que conocemos como “x” e “y” se modifican y van a cambiar dependiendo de la matriz que esté describiendo ese espacio, en este caso, la matriz “x”. Lo que sucede con los autovectores es que son vectores que, durante la transformación del espacio, se mantienen en el subespacio generado por el vector “original” en el espacio “original”. No necesariamente todos los autovectores del nuevo espacio estan dentro del mismo subespacio generado, por eso, este otro vecto ortgonal es también un autovector que se mantiene en el subesapcio generado de otro vector “original”.
Si nosotros quisiéramos averiguar cual es ese vector “original” tendríamos que tratar el problema como un sistema de ecuaciones lineales donde “x” e “y” son las incógnitas de ese vector. Les dejo acá la captura de como se podría solucionar en python.
Lo que pasa con el vector [[0.14142136] , [0.14142136]] es que al transformarse el espacio, se mantiene dentro de su subespacio generado escalándose en 5 (que es su autovalor o el lambda, como arroja la función de Eigenvalues de numpy).
Si este profe si sabe de lo que habla y lo hace con código . Genial !!
Por si necesitan comprender un poco mejor los conceptos
Autovalores y Autovectores
Cálculo de autovalores y autovectores en python
Usamos el método np.linalg,eig(<matriz>)
que nos devuelve una tupla con los arreglos de autovalores y autovectores. Ejemplo:
autovalores, autovectores = no.linalg.eig(A)
que curso debo ver antes que este? no he entendido nada 😦
matriz=np.array([[3,2],[4,1]])
autovalores,autovectores=np.linalg.eig(matriz)
print(autovalores)
print(autovectores)
print(np.linalg.norm(autovectores[:,1]))
print(np.rad2deg(np.arccos(np.abs(autovectores[:,1].dot(np.array([1,0]))))))
print(np.rad2deg(np.arccos(np.abs(np.array([1,-2]).dot(np.array([1,0])/np.linalg.norm(np.array([1,-2])))))))```
Recomiendo hacer al menos una vez los cálculos a mano para entender las matemáticas de fondo, al fin y al cabo al llamar a los comandos todo sale solo y arroja solo el resultado, de esa manera uno no entiende de donde salió
En mi caso estaba perdida con este tema, no podía comprenderlo, nunca lo había estudiado.
Busque otras fuentes y las comparto por si les interesa.
Primero entenderlo de forma tradicional:
Usando Python
Con la librería sympy https://youtu.be/sgaE9j5OmLs
Existe un fallo en la explicación específicamente centrada en la grafica del final de la clase que puede generar confusiones ya que aunque es cierto que los vectores cambian de sentido, teniendo en cuenta que el sentido es similar a las coordenadas de ubicación (norte, sur, noroccidente etc…) y dicho sentido en vectores se determina por medio la flecha del vector, sin embargo la dirección también cambia ya que la dirección de un vector la indica el ángulo que forma el vector con el eje x y si el vector apunta en sentido inverso al de referencia entonces cambia el ángulo de este con respecto al eje x por ello cambia su dirección, espero poder aclarar en algo a quien lo necesite
La funciónnp.linalg.eig()devuelve dos valoresautovaloresy autovectores. Los autovalores se almacenanautovalores, yautovectores, donde cada columna representa un autovector.
import numpy as np
# Definir una matriz
A = np.array([[2, 1],
[1, 2]])
# Calcular los autovalores y autovectores
autovalores, autovectores = np.linalg.eig(A)
# Imprimir los autovalores y autovectores
print("Autovalores:", autovalores)
print("Autovectores:")
for i in range(len(autovectores)):
print(autovectores[:, i])
A mi consideracion, deberia haber establecido otros valores para “v”, ya que no se aprecia bien lo que esta queriendo explicar, lo que se genera es que por mas que “v” cambie de valores, el vector “Xv” seguira teniendo la misma direccion que “v_np” (autovector)
Los autovectores son los mismos. Pueden cambiar en amplitud o sentido, pero su dirección se mantiene!
Me pueden explicar por qué elige v = np.array([[-1],[2]])?
Por qué no tomó un valor aleatorio para evaluar la transformada
Totalmente de acuerdo, de los mejores profesores
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?