Cálculo de Normas en Python para Aprendizaje Automático
Clase 22 de 28 • Curso de Fundamentos de Álgebra Lineal con Python
Resumen
¿Qué son las normas y cómo se utilizan en aprendizaje automático?
Las normas son herramientas fundamentales en el aprendizaje automático y otras áreas de la ciencia de datos utilizadas para medir diversas propiedades de los vectores. Existen diferentes tipos de normas que se emplean para calcular errores, distancias y más. En este artículo, exploraremos las normas más comunes y discutiremos cómo se pueden implementar utilizando la biblioteca NumPy en Python. Las normas que abordaremos incluyen L0, L1, L2 y la norma infinita.
¿Cómo calcular la norma L0?
La norma L0 es la más sencilla de entender: calcula la cantidad de elementos distintos de cero en un vector. Es útil para determinar elementos no nulos, por ejemplo, al evaluar la cantidad de compras realizadas por usuarios, donde cada componente del vector representa una compra. Este es el procedimiento para calcular la norma L0 en Python con NumPy:
import numpy as np
# Definimos un vector
vector = np.array([1, 2, 0, 5, 6, 0])
# Calculamos la norma L0
norma_l0 = np.linalg.norm(vector, ord=0)
print(norma_l0) # Devuelve 4, hay 4 elementos distintos de cero.
¿Cómo se calcula la norma L1?
La norma L1, también conocida como norma de suma absoluta, entrega la suma de los valores absolutos de los componentes del vector. Esta norma cobra relevancia en situaciones donde necesitamos una medida que dependa linealmente de cada componente del vector:
# Definimos un vector con valores positivos y negativos
vector = np.array([1, -1, 1, -1, 1])
# Calculamos la norma L1
norma_l1 = np.linalg.norm(vector, ord=1)
print(norma_l1) # Devuelve 5, la suma de valores absolutos.
¿Por qué es importante la norma L2?
La norma L2 es probablemente la más conocida. Está relacionada con la distancia euclidiana, la medida estándar en geometría para calcular la distancia entre dos puntos en un espacio. Se utiliza ampliamente en aprendizaje automático debido a su simplicidad y eficacia computacional. Al elevar los componentes al cuadrado en lugar de tomar la raíz cuadrada, es posible optimizar algoritmos para mejorar el rendimiento:
# Definimos un vector
vector = np.array([1, 1])
# Calculamos la norma L2
norma_l2 = np.linalg.norm(vector)
print(norma_l2) # Devuelve aproximadamente 1.41, la raíz cuadrada de 2.
# Calculamos la norma L2 al cuadrado
norma_l2_squared = np.linalg.norm(vector) ** 2
print(norma_l2_squared) # Devuelve 2.
# También se puede calcular usando el producto interno
norma_l2_squared_internal = np.dot(vector, vector)
print(norma_l2_squared_internal) # Devuelve 2.
¿Qué es la norma infinita y cómo se calcula?
La norma infinita proporciona el valor absoluto más grande de un vector. Es útil en situaciones en las que necesitamos detectar valores extremos que puedan ser significativos para un análisis más detallado. Su cálculo en Python es sencillo usando NumPy:
# Definimos un vector con un valor prominente
vector = np.array([1, 2, 3, -100])
# Calculamos la norma infinita
norma_inf = np.linalg.norm(vector, ord=np.inf)
print(norma_inf) # Devuelve 100, el valor absoluto máximo del vector.
Las normas son herramientas versátiles y potentes en el aprendizaje automático, desempeñando un papel crucial para evaluar diferentes aspectos de los datos de entrada. Su correcta aplicación puede mejorar significativamente la eficiencia de los algoritmos. A medida que avances en tus estudios y aplicaciones de machine learning, comprender y utilizar estas normas te será cada vez más indispensable. ¡Sigue aprendiendo y explorando el vasto mundo del aprendizaje automático!