Simulación (Lección 6) - Implementación de un Modelo de Regresión
Objetivos:
Implementar y comprender los modelos de regresión lineal y logística.
Evaluar el rendimiento de los modelos utilizando conjuntos de datos reales.
1. Introducción a la Regresión Lineal
Conceptos Básicos:
Funcionamiento del modelo de regresión lineal.
Aplicaciones de la regresión lineal.
Carga y Exploración del Conjunto de Datos (California Housing):
from sklearn.datasets import fetch_california_housing
import pandas as pd
# Cargar el conjunto de datos de California Housing
data = fetch_california_housing(as_frame=True)
X = data.data
y = data.target
# Crear un DataFrame para exploración
df = pd.DataFrame(X, columns=data.feature_names)
df['target'] = y
print(df.head())
Implementación del Modelo de Regresión Lineal:
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt
# Entrenar el modelo
model = LinearRegression()
model.fit(X, y)
# Realizar predicciones
predictions = model.predict(X)
# Visualizar resultados
plt.scatter(y, predictions)
plt.xlabel('Precios Reales')
plt.ylabel('Precios Predichos')
plt.title('Regresión Lineal: Precios Reales vs. Predichos')
plt.show()
Evaluación del Modelo:
from sklearn.metrics import mean_squared_error
# Calcular el error cuadrático medio
mse = mean_squared_error(y, predictions)
print(f'Error Cuadrático Medio: {mse}')
2. Introducción a la Regresión Logística
Conceptos Básicos:
Funcionamiento del modelo de regresión logística.
Aplicaciones de la regresión logística.
Carga y Exploración del Conjunto de Datos (Breast Cancer):
from sklearn.datasets import load_breast_cancer
import pandas as pd
# Cargar el conjunto de datos de cáncer de mama
data = load_breast_cancer()
X = data.data
y = data.target
# Crear un DataFrame para exploración
df = pd.DataFrame(X, columns=data.feature_names)
df['target'] = y
print(df.head())
Implementación del Modelo de Regresión Logística:
from sklearn.linear_model import LogisticRegression
import matplotlib.pyplot as plt
# Entrenar el modelo
model = LogisticRegression(max_iter=10000)
model.fit(X, y)
# Realizar predicciones
predictions = model.predict(X)
# Visualizar resultados
plt.scatter(y, predictions)
plt.xlabel('Clases Reales')
plt.ylabel('Clases Predichas')
plt.title('Regresión Logística: Clases Reales vs. Predichas')
plt.show()
Evaluación del Modelo:
from sklearn.metrics import classification_report
# Generar reporte de clasificación
report = classification_report(y, predictions)
print(report)