Resumen

Aprende a medir y corregir errores con vectores y matrices en machine learning. Con operaciones tan simples como resta de vectores, multiplicación por escalar y suma (incluido el broadcasting), podrás entender cómo un modelo hace pequeñas correcciones estables para mejorar sus predicciones.

¿Cómo se calcula el error y el ajuste con escalares en machine learning?

Un sistema de recomendaciones compara lo que predice con lo que realmente te gusta. Esa diferencia es el error, y se obtiene con una resta de vectores. Luego, se aplica una corrección pequeña multiplicando el error por un escalar llamado tasa de aprendizaje o learning rate.

¿Qué es el error y cómo se resta?

  • Error = calificación real − predicción del modelo.
  • Si la predicción es menor que la realidad, el error es positivo. Si se pasó, el error es negativo.
  • Ejemplo con dos géneros: ciencia ficción y comedia.
import numpy as np

calificaciones_reales = np.array([5, 2])      # ciencia ficción, comedia
prediccion_modelo    = np.array([4, 4])

error = calificaciones_reales - prediccion_modelo  # [1, -2]
print(error)

¿Qué significa learning rate y por qué 0.1?

  • El learning rate controla el tamaño del paso de corrección.
  • Usar 0.1 implica ajustar el 10 % del error: correcciones suaves y estables, sin reacciones exageradas.
learning_rate = 0.1
ajuste = error * learning_rate  # [0.1, -0.2]
print(ajuste)

¿Cómo se implementa en Google Colab con NumPy?

  • Importa siempre NumPy: import numpy as np.
  • Usa np.array para crear vectores y matrices.
  • Imprime y verifica resultados paso a paso para entender el flujo cálculo → error → ajuste.

¿Cómo sumar matrices y aplicar bonificaciones con broadcasting en NumPy?

Hay dos escenarios frecuentes: sumar matrices de la misma forma y sumar un vector a una matriz completa. Lo primero es directo; lo segundo funciona gracias al broadcasting de NumPy, que expande virtualmente el array más pequeño para que las formas coincidan.

¿Cómo se suman matrices de la misma forma?

  • Caso de ventas: filas como productos y columnas como tiendas.
  • Suma elemento a elemento para obtener ventas acumuladas por tienda y producto.
ventas_enero = np.array([[150, 200, 180],
                         [120,  90, 100]])
ventas_febrero = np.array([[130, 110, 210],
                           [ 80, 120, 190]])

ventas_totales = ventas_enero + ventas_febrero
print(ventas_totales)

¿Cómo funciona el broadcasting al sumar un vector?

  • Aplica un vector de bonificaciones por tienda al mismo tiempo para todos los productos.
  • NumPy compara formas de derecha a izquierda y expande el vector para que coincida con la matriz.
bonificaciones = np.array([10, 15, 5])  # por tienda
print(ventas_enero.shape)   # (2, 3)
print(bonificaciones.shape) # (3,)

ventas_con_bono = ventas_enero + bonificaciones
print(ventas_con_bono)

¿Qué condición de shapes hay que verificar?

  • Compara de derecha a izquierda: las dimensiones deben ser iguales o una debe ser 1.
  • Si no coinciden, NumPy lanza error de broadcasting.
bonificaciones_err = np.array([10, 15, 5, 20])
# ValueError: Operands could not be broadcast together
ventas_enero + bonificaciones_err
  • Reglas clave.
  • Igualdad por eje al comparar de derecha a izquierda.
  • Eje igual a 1 puede expandirse.
  • Cualquier otra combinación genera error.

¿Qué habilidades prácticas refuerzas y cuál es el reto final?

Dominas operaciones esenciales para entrenar modelos: resta de vectores para calcular error, multiplicación por escalar para ajustar con learning rate, suma de matrices para consolidar datos y suma con broadcasting para aplicar vectores a matrices. También compruebas shapes y lees mensajes de error al trabajar con arrays.

  • Habilidades y conceptos que aparecen.
  • Representación con np.array y trabajo en Google Colab.
  • Cálculo de error: [5, 2] − [4, 4] = [1, -2].
  • Tasa de aprendizaje o learning rate de 0.1 como corrección estable.
  • Suma de matrices para ventas acumuladas entre meses.
  • Broadcasting: aplicar bonificaciones por tienda a toda la matriz.
  • Verificación de shape: (2, 3) frente a (3,) es válido; (2, 3) frente a (4,) no lo es.

  • Reto rápido.

  • Tienes una matriz 4×3 con coordenadas X, Y, Z de cuatro puntos.
  • Define un vector de desplazamiento de forma 2 con dos elementos, por ejemplo [2, -1].
  • Sin código, decide si la suma es posible según las reglas de broadcasting.
  • Comparte tu razonamiento en los comentarios.