algebra lineal

Bienvenidos a Álgebra lineal (básica) con Numpy II parte para Machine learning y data science.

Creo que a todos nos quedó claro vectores, y si no es así puedes volver a revisar la parte I de este blog post, donde hablamos de vectores, los graficamos, los vemos con Numpy y nos matamos la cabeza entendiendolos. Solo desde dar clic aquí 

Después de hablar de vectores y entenderlos, en este post vamos a ver todo sobre matrices en data science y machine learning.

Yo soy una persona muy muy gráfica, siempre cuento la historia de que me se todos los tiempos de los verbos irregulares (en inglés) en un orden específico, por una tabla que hice cuando estaba en quinto de primaria, y aún recuerdo todo de ella. Así que por eso la mayoría de mis blogs tienen gráficos, tablas, dibujos, para que sea más fácil de recordar. 

Recordemos la estructura del artículo anterior:

  1. Explicación teórica
  2. Ejemplos (cálculos y gráficos)
  3. Implementación con Python (Numpy)

Y este será el contenido de este blog:

  1. ¿Qué es un matriz?
  2. Suma y resta de matrices 
  3. Multiplicación con escalar
  4. Multiplicación con matrices
  5. Transposición de matriz
  6. Matriz identidad 
  7. Determinante de una matriz
  8. Matriz inversa

1. ¿Qué es una matriz? Una matriz es simplemente un arreglo rectangular de números (¡Suena fácil!)

En data science las usamos un montón, así nos nos demos cuenta. Es super importante de diferenciar un vector de una matriz, y es super fácil de hacerlo. En pocas palabras un vector es una sola columna (atributo) en su conjunto de datos y una matriz es una colección de todas las columnas

2. Suma y resta de matrices

Para sumar o restar un matriz debemos verificar que tenga el mismo número de entradas, entonces podemos sumar una matriz 3×2 con otra 3×2. La adición de matrices es super similar a la suma de vectores (que espero que te haya quedado super claro) la única diferencia es que hay varias columnas en lugar de una sola. Con la fórmula va a quedar muy claro

Suma y resta de matrices
Suma y resta de matrices

En numpy

A = np.matrix([
[3, 5],
[1, 0]
])
B = np.matrix([
[2, 3],
[1, 2]
])print(A + B)

RESULTADO
[[5 8]
2 2]]

3. Multiplicación con un escalar: 

El concepto es idéntico al de vectores ¿Recuerdas que es un escalar? Pues 
cada número en la matriz se multiplicará con algún escalar.

Multiplicación con un escalar:
Multiplicación con un escalar:

Con Numpy

c = np.matrix([
[3, 5],
[1, 0]
])print(2 * c)
RESULTADO
[[ 6 10]
2 0]]

4. Multiplicación de matrices:

Todo iba muy bien? Cierto? Todo parecido a vectores, fórmulas fáciles, todo el mundo era feliz. Hasta que llegamos a multiplicación de matrices.

Para que que este nuevo reto sea mucho más fácil debemos recordar cómo encontrar el producto punto de dos listas ordenadas de números. 

5. Transposición de matriz

A penas leí este término entre en pánico, tengo que confesar que no se ni siquiera que es transposición (si lo sabes ya sabrás la idea, y si no te invito a buscar su significado para entender un poco mejor)

La idea de transposición la vamos a cambiar por algo más simple, necesitamos intercambiar filas y columnas de una matriz, el operador de transposición se denota con la T mayúscula. Vamos con la fórmula

Transposición de matriz

Como puedes ver, los elementos diagonales permanecieron igual, y aquellos fuera de la diagonal cambiaron su posición.

Transposición de matriz

Implementación en Numpy

D = np.matrix([
[3, 4],
[1, 0]
])print(D.T)

RESULTADO
[[3 1]
4 0]]

No se si recuerden la propiedad de identidad que era algo como el producto de 1 con cualquier número es ese número. Por ejemplo, 7 x 1 = 7

Algo así queremos saber con este concepto, si hay alguna matriz que cumpla con esta propiedad 

Es una matriz donde:


– Cada elemento diagonal es 1
– Todos los otros elementos son 0 

Se denota con una letra mayúscula I y el número que representa su tamaño en un subíndice.

matrices

Numpy

E = np.eye(3)
print(E)
RESULTADO
[[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]

7. Determinante de una matriz

En Matemáticas se define el determinante como una forma multilineal alternada de un cuerpo. Esta definición indica una serie de propiedades matemáticas y generaliza el concepto de determinante haciéndolo aplicable en numerosos campos. Sin embargo, el concepto de determinante o de volumen orientado fue introducido para estudiar el número de soluciones de los sistemas de ecuaciones lineales

Querida Wikipedia, quiero decirte que no te entiendo. 
El proceso de cálculo es simple para la matriz de 2×2, se vuelve un poco más difícil para las matrices de 3×3 y no se debe calcular a mano para las más grandes. Quiero decir que puedes si quieres, pero ¿por qué? El objetivo aquí es desarrollar la intuición, para hacer cálculos existe Numpy 

Determinante de una matriz
Determinante de una matriz

En numpy:

A = np.matrix([
[3, 2],
[1, 6]
])
print(np.linalg.det(A))
RESULTADO
16.00000000000000

8. Matriz inversa o invertible 


Una matriz (cuadrada) se llama invertible si la multiplicación de la matriz original por sus resultados inversos es la matriz de identidad (súper clarísimo, no?)

De esa afirmación, puede concluir que no todas las matrices tienen inversas. Para que una matriz sea invertible, debe cumplir las siguientes condiciones:

  • Debe ser cuadrado 
  • El determinante no puede ser 0

Una matriz que no es invertible se llama matriz singular. Lógicamente, para que la matriz cuadrada sea singular, su determinante debe ser igual a 0. Veamos la fórmula para entender un poco mejor

Matriz inversa o invertible

Como puedes ver, el inverso de la matriz se denota con este término -1 en el superíndice. Es posible que la fórmula ya le resulte familiar: hay un término ad — bc visto anteriormente (el determinante). Puedes ver aquí por qué el determinante no puede ser 0: la división por 0 no está definida.
Este término se multiplica con la versión ligeramente reorganizada de la matriz original. Los elementos diagonales se cambian y los elementos fuera de diagonal se multiplican por uno negativo (-1).

Matriz inversa o invertible

Ahora verifiquemos la afirmación mencionada anteriormente, y es que la multiplicación de la matriz original por su inverso produce la matriz de identidad

Matriz inversa o invertible

En numpy:

A = np.matrix([
[4, 3],
[5, 4]
])
print(np.linalg.inv(A))
RESULTADO
[[ 4. -3.]
[-5. 4.]]

Y esto es todo, una introducción al álgebra lineal para data science y machine learning

Álgebra lineal con Numpy II parte para Machine learning

Suscribete en mi canal de Youtube

Apoyame para seguir creando contenido y accede a mentorías personalizadas aquí

Gracias por leerme 💜

1 comment on “Álgebra lineal con Numpy II parte para Machine learning

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *