// modulo 19 - laboratorio interactivo
Colab Interactivo de IA
Aprende Machine Learning ejecutando codigo paso a paso con explicaciones pedagogicas, visualizaciones y ejercicios de comprension.
1. Que es la Regresion Lineal?
La regresion lineal es el algoritmo mas fundamental del Machine Learning supervisado. Busca la relacion matematica entre una variable independiente (X) y una variable dependiente (y) mediante la ecuacion: y = B0 + B1*X + error\n\nDonde:\n- B0 = intercepto (valor de y cuando X=0)\n- B1 = pendiente (cuanto cambia y por cada unidad de X)\n- error = residuo\n\nCaso de negocio: Una cadena de tiendas quiere predecir sus ventas mensuales basandose en el gasto en publicidad.
IBM Certification Note
En IBM SPSS Statistics, la regresion lineal se encuentra en Analyze -> Regression -> Linear. En IBM Watson AutoAI, se selecciona automaticamente como candidato cuando la variable objetivo es continua.
2. Importar Librerias y Crear Dataset
import numpy as np
import pandas as pd
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error, r2_score
# Crear dataset: Inversion en publicidad (MXN miles) vs Ventas (MXN miles)
np.random.seed(42)
publicidad = np.array([10, 15, 20, 25, 30, 35, 40, 45, 50, 55,
60, 65, 70, 75, 80, 85, 90, 95, 100, 110])
ventas = 2.5 * publicidad + np.random.normal(0, 8, len(publicidad)) + 50
df = pd.DataFrame({'publicidad_miles_mxn': publicidad,
'ventas_miles_mxn': ventas})
print('Dataset de Ventas vs Publicidad')
print(f'Observaciones: {len(df)}')
print(df.describe().round(2))3. Dividir Datos y Entrenar el Modelo
X = df[['publicidad_miles_mxn']]
y = df['ventas_miles_mxn']
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42
)
print(f'Datos de entrenamiento: {len(X_train)} observaciones')
print(f'Datos de prueba: {len(X_test)} observaciones')
modelo = LinearRegression()
modelo.fit(X_train, y_train)
print(f'Ecuacion del modelo:')
print(f'Ventas = {modelo.intercept_:.2f} + {modelo.coef_[0]:.2f} x Publicidad')
print(f'Por cada $1,000 MXN adicional en publicidad,')
print(f'las ventas aumentan ${modelo.coef_[0]*1000:.0f} MXN')4. Evaluar el Modelo con Metricas
y_pred = modelo.predict(X_test)
rmse = np.sqrt(mean_squared_error(y_test, y_pred))
r2 = r2_score(y_test, y_pred)
mae = np.mean(np.abs(y_test - y_pred))
print('=== METRICAS DE EVALUACION ===')
print(f'R2 (Coeficiente de Determinacion): {r2:.4f}')
print(f' El modelo explica el {r2*100:.1f}% de la variabilidad en ventas')
print(f'RMSE: {rmse:.2f} miles MXN')
print(f' El error promedio de prediccion es +/- ${rmse*1000:.0f} MXN')
print(f'MAE: {mae:.2f} miles MXN')
nueva_inversion = 75
prediccion = modelo.predict([[nueva_inversion]])[0]
print(f'Si invertimos $75,000 MXN en publicidad:')
print(f'Ventas esperadas: ${prediccion*1000:,.0f} MXN')5. Verifica tu Comprension
Un modelo de regresion lineal tiene R2 = 0.72. Cual es la interpretacion correcta para el equipo directivo?