Contenido del curso
Operaciones con Vectores y Matrices
Multiplicación de Matrices
Construcción de un Modelo de Regresión Lineal
Resta y broadcasting de vectores en NumPy
Resumen
Aprender a operar vectores y matrices con NumPy es clave para entender cómo un modelo de machine learning mide errores, se corrige y acumula información. Aquí verás cómo aplicar resta, multiplicación por escalar, suma de matrices y broadcasting con ejemplos prácticos en Python, pensados para quienes están empezando con ciencia de datos.
¿Cómo se mide el error de un modelo con resta de vectores?
Un sistema de recomendación aprende comparando lo que predice con lo que realmente te gusta. Esa diferencia es el error, y se obtiene restando dos vectores [00:35].
Imagina que calificas dos películas: ciencia ficción con 5 y comedia con 2. El modelo, aún en entrenamiento, predice 4 y 4. Al restar las calificaciones reales menos la predicción obtienes el vector [1, -2]. El primer valor indica que al modelo le faltó un punto para acertar en ciencia ficción, y el segundo muestra que se equivocó por 2 puntos al sobreestimar tu gusto por la comedia.
python import numpy as np
calificaciones_reales = np.array([5, 2]) prediccion_modelo = np.array([4, 4])
error = calificaciones_reales - prediccion_modelo print(error) # [ 1 -2]
Esta resta es la operación fundamental detrás de cómo un modelo evalúa qué tan lejos está de la respuesta correcta.
¿Por qué multiplicar el error por un escalar pequeño?
Un modelo no corrige todo su conocimiento de golpe porque sería inestable. En su lugar, multiplica el vector de error por un número pequeño para dar un paso suave en la dirección correcta [02:30].
Ese número se llama tasa de aprendizaje o learning rate, y controla el tamaño del ajuste. Usar 0.1 equivale a corregir solo el 10% del error, lo que permite que el modelo aprenda de forma estable sin reaccionar exageradamente.
python porcentaje_ajuste = 0.1 ajuste = error * porcentaje_ajuste print(ajuste) # [ 0.1 -0.2]
¿Qué es la tasa de aprendizaje en machine learning? Es un número pequeño que multiplica el error para controlar cuánto se corrige el modelo en cada paso. Valores como 0.1 evitan saltos bruscos y permiten un aprendizaje estable.
Repetir este ciclo de cálculo, ajuste y resta miles de veces es la base de cómo los modelos se entrenan y mejoran.
¿Cómo sumar dos matrices con la misma forma en NumPy?
El caso más intuitivo aparece cuando dos matrices tienen exactamente la misma estructura. Piensa en un e-commerce con ventas de enero y febrero, donde las filas son productos y las columnas son tiendas [04:35].
python 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)
NumPy suma elemento por elemento y devuelve una matriz con el total acumulado por producto y por tienda. Es directo, siempre que las formas coincidan.
¿Qué pasa cuando sumas una matriz y un vector de distinta forma?
Aquí entra una de las funciones más potentes de NumPy: el broadcasting. Imagina que quieres aplicar una bonificación por tienda, la misma para todos los productos [07:00].
python bonificaciones = np.array([10, 15, 5])
print(ventas_enero.shape) # (2, 3) print(bonificaciones.shape) # (3,)
ventas_con_bono = ventas_enero + bonificaciones print(ventas_con_bono)
La matriz tiene forma (2, 3) y el vector solo (3,), pero la suma funciona. NumPy expande virtualmente el vector para que coincida con la matriz, duplicando sus valores en cada fila durante la operación.
¿Qué es el broadcasting en NumPy? Es una técnica que permite operar arrays de distinta forma. NumPy expande virtualmente el array más pequeño para que sus dimensiones coincidan con el más grande, sin duplicar datos en memoria.
¿Cuándo falla el broadcasting y cómo evitar el error?
No todas las formas son compatibles. La regla es clara: al comparar las dimensiones de derecha a izquierda, deben ser iguales o una de ellas debe ser 1 [09:10].
En el ejemplo anterior, la matriz tiene 3 columnas y el vector tiene 3 elementos, así que cumple la condición. Pero si el vector tuviera 4 elementos en lugar de 3, NumPy lanzaría un error como este:
operands could not be broadcast together with shapes (2,3) (4,)
Algunas claves para no equivocarte:
- Revisa siempre
.shapeantes de operar. - Compara las dimensiones de derecha a izquierda.
- Recuerda que una dimensión de tamaño 1 también permite broadcasting.
Ejercicio para practicar broadcasting
Imagina una matriz de 4x3 que representa las coordenadas X, Y y Z de cuatro puntos. Defines un vector de desplazamiento con solo dos elementos, por ejemplo [2, -1].
Sin ejecutar código, responde con tu intuición: ¿se puede sumar esta matriz con ese vector, o NumPy arrojará un error? Compara las formas de derecha a izquierda y comparte tu respuesta en los comentarios.