Ejercicio de Regresión: Predicción de Precios de Viviendas

Ver en Colab ➜

import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
import matplotlib.pyplot as plt

# Generar datos sintéticos
np.random.seed(42)
X = np.random.rand(100, 1) * 10  # Superficie en m²
y = 2.5 * X + np.random.normal(0, 2, size=(100, 1))  # Precio con ruido

# Dividir datos
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Entrenar un modelo de regresión lineal
model = LinearRegression()
model.fit(X_train, y_train)

# Predicciones
y_pred_train = model.predict(X_train)
y_pred_test = model.predict(X_test)

# Calcular errores
train_mse = mean_squared_error(y_train, y_pred_train)
test_mse = mean_squared_error(y_test, y_pred_test)
print(f"Error cuadrático medio (Entrenamiento): {train_mse}")
print(f"Error cuadrático medio (Prueba): {test_mse}")

# Visualizar resultados
plt.scatter(X, y, color="blue", label="Datos")
plt.plot(X, model.predict(X), color="red", label="Línea de regresión")
plt.title("Regresión lineal: Predicción de precios")
plt.xlabel("Superficie (m²)")
plt.ylabel("Precio")
plt.legend()
plt.show()