3. Aplicación Práctica: Regresión Lineal

          Aplicación Práctica: Regresión Lineal 

(Aprendizaje Supervisado)

 


La regresión lineal es un algoritmo de aprendizaje supervisado utilizado para predecir valores numéricos en función de variables independientes. Aquí hay un ejemplo práctico de cómo se puede aplicar la regresión lineal:

Supongamos que tienes un conjunto de datos que contiene información sobre la cantidad de horas que una persona estudia y la puntuación que obtiene en un examen. Quieres predecir la puntuación en el examen en función de las horas de estudio.

  1. Preparación de los datos:

    • Tienes un conjunto de datos con pares de valores (horas_estudio, puntuacion_examen).
    • Divide tus datos en conjuntos de entrenamiento y prueba. Por ejemplo, puedes usar el 80% de los datos para entrenar el modelo y el 20% restante para probarlo.
  2. Entrenamiento del modelo:

    • Utiliza la biblioteca de aprendizaje automático, como scikit-learn en Python, y selecciona la regresión lineal como tu modelo.
    • Ajusta el modelo utilizando el conjunto de entrenamiento, donde las horas de estudio son las características (variables independientes) y la puntuación del examen es la variable objetivo (variable dependiente).
  3. Validación del modelo:

    • Una vez entrenado, utiliza el conjunto de prueba para evaluar el rendimiento del modelo.
    • Calcula métricas como el error cuadrático medio (MSE) o el coeficiente de determinación (R-cuadrado) para ver qué tan bien se ajusta el modelo a los datos de prueba.
  4. Predicción:

    • Ahora que has entrenado y validado el modelo, puedes usarlo para predecir la puntuación en el examen para nuevas horas de estudio que no estaban en tu conjunto de datos original.
En este ejemplo, generaremos datos aleatorios y luego aplicaremos la regresión lineal para predecir valores.
# Instalamos scikit-learn si no está instalado
!pip install -U scikit-learn

import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score

# Generamos datos aleatorios para demostración
np.random.seed(0)
X = 2 * np.random.rand(100, 1)
y = 4 + 3 * X + np.random.randn(100, 1)  # y = 4 + 3X + ruido gaussiano

# Dividimos los datos en entrenamiento y prueba
X_train, X_test, y_train, y_test = X[:80], X[80:], y[:80], y[80:]

# Creamos y entrenamos el modelo de regresión lineal
model = LinearRegression()
model.fit(X_train, y_train)

# Realizamos predicciones sobre el conjunto de prueba
y_pred = model.predict(X_test)

# Evaluamos el modelo
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)

print(f"Error cuadrático medio (MSE): {mse}")
print(f"Coeficiente de determinación (R²): {r2}")

# Graficamos los datos y la línea de regresión
plt.scatter(X, y, color='blue')
plt.plot(X_test, y_pred, color='red', linewidth=3)
plt.xlabel('X')
plt.ylabel('y')
plt.title('Regresión Lineal')
plt.show()

Resultados 

Requirement already satisfied: scikit-learn in /usr/local/lib/python3.10/dist-packages (1.2.2)
Collecting scikit-learn
  Downloading scikit_learn-1.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.8 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.8/10.8 MB 15.8 MB/s eta 0:00:00
Requirement already satisfied: numpy<2.0,>=1.17.3 in /usr/local/lib/python3.10/dist-packages (from scikit-learn) (1.23.5)
Requirement already satisfied: scipy>=1.5.0 in /usr/local/lib/python3.10/dist-packages (from scikit-learn) (1.11.4)
Requirement already satisfied: joblib>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from scikit-learn) (1.3.2)
Requirement already satisfied: threadpoolctl>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from scikit-learn) (3.2.0)
Installing collected packages: scikit-learn
  Attempting uninstall: scikit-learn
    Found existing installation: scikit-learn 1.2.2
    Uninstalling scikit-learn-1.2.2:
      Successfully uninstalled scikit-learn-1.2.2
Successfully installed scikit-learn-1.3.2
WARNING: The following packages were previously imported in this runtime:
  [sklearn]
You must restart the runtime in order to use newly installed versions.
Error cuadrático medio (MSE): 0.9000820622604009
Coeficiente de determinación (R²): 0.7292230269382424

Comentarios

Entradas populares de este blog

5. Árboles de Decisión

4. Regresión Logística (Aprendizaje Supervisado)