Norma L2 vs L1 en vectores con NumPy
Clase 6 de 16 • Curso de Álgebra Lineal para Machine Learning
Contenido del curso
Operaciones con Vectores y Matrices
Multiplicación de Matrices
Construcción de un Modelo de Regresión Lineal
Las normas de vectores son la forma más clara y práctica de medir la intensidad, longitud y distancia en datos. En machine learning ayudan a comparar perfiles, controlar modelos con regularización y estandarizar vectores para analizar solo su dirección. Aquí verás la norma L2, su interpretación con el teorema de Pitágoras, y cómo calcular L1, L0 y L∞ con NumPy.
¿Qué es la norma y para qué sirve en machine learning?
La norma es la magnitud de un vector: un solo número que resume qué tan intenso es un conjunto de preferencias o características. En práctica, se usa para medir distancias, penalizar pesos demasiado grandes y normalizar vectores a longitud uno.
¿Cómo mide distancia en perfiles y contenidos?
- Compara tu vector de gustos con el de una película.
- Calcula la cercanía en el espacio vectorial.
- Base para recomendaciones personalizadas.
¿Cómo estabiliza modelos con regularización?
- Detecta pesos con magnitudes grandes.
- Penaliza para evitar errores típicos del overfitting.
- Mantiene el modelo estable.
¿Cómo estandariza para comparar direcciones?
- Ajusta vectores a longitud uno.
- Permite comparar solo la dirección.
- Útil en texto y similitud de perfiles.
¿Cómo se calcula la norma L2 y cómo se interpreta?
La norma L2 o euclidiana es la distancia en línea recta desde el origen hasta la punta del vector. Se entiende con el teorema de Pitágoras: la hipotenusa del triángulo formado por los componentes del vector es su longitud.
¿Cómo se implementa en código con NumPy?
Ejemplo en Google Colab con NumPy y linalg:
import numpy as np
perfil_ana = np.array([5, 1]) # ciencia ficción = 5, comedia = 1
perfil_juan = np.array([1, 5]) # ciencia ficción = 1, comedia = 5
norma_ana = np.linalg.norm(perfil_ana)
norma_juan = np.linalg.norm(perfil_juan)
print(f"norma de ana: {norma_ana:.2f}")
print(f"norma de juan: {norma_juan:.2f}")
# salida ejemplo: 5.10 y 5.10
Interpretación: aunque Ana prefiere mucho la ciencia ficción y Juan la comedia, la intensidad total de sus gustos es igual. La norma L2 devuelve 5.10 para ambos, indicando misma magnitud aunque diferente dirección.
¿Qué diferencias hay entre L1, L0 y L infinito y cómo calcularlas?
Además de L2, es clave conocer otras normas para distintos objetivos: robustez, dispersión y máximo impacto. Todas se calculan con NumPy de forma simple.
¿Cómo calcular la norma L1 y para qué sirve?
- Suma de valores absolutos.
- Mide distancia en “ángulos rectos”.
- Útil cuando se busca robustez frente a outliers.
import numpy as np
vector = np.array([3, -4, 0])
norma_L1 = np.linalg.norm(vector, ord=1)
print(f"norma L1 del vector: {norma_L1}")
# salida: 7
¿Cómo medir dispersión con L0 en la práctica?
- Cuenta cuántos componentes son distintos de cero.
- Útil para evaluar escasez o dispersión de características.
norma_L0 = np.count_nonzero(vector)
print(f"norma L0 del vector: {norma_L0}")
# salida: 2
¿Cómo obtener el peor caso con L infinito?
- Devuelve el valor absoluto más grande.
- Informa el impacto máximo de una característica.
norma_Linf = np.linalg.norm(vector, ord=np.inf)
print(f"norma L infinito del vector: {norma_Linf}")
# salida: 4.0
¿Te animas a practicar? imagina dos vectores de características para casas: casa 1 = [120, 3] y casa 2 = [100, 4], donde los componentes son metros cuadrados y número de habitaciones. Calcula la norma L2 de ambos y responde: ¿qué podría significar una norma mayor en este contexto?
Comparte tus resultados y tu interpretación en los comentarios.