Regresión Lineal con PyTorch: Creación y Partición de Datos Artificiales

Clase 7 de 24Curso de Redes Neuronales con PyTorch

Resumen

¿Cómo crear un modelo de regresión lineal?

Cuando empiezas a adentrarte en el mundo del machine learning, uno de los modelos más básicos y fundamentales que aprenderás es el de regresión lineal. Este tipo de modelo te permitirá comprender mejor cómo varían dos variables y cómo predecir una con base en la otra. En este módulo, exploraremos cómo crear, entrenar y evaluar un modelo de regresión lineal utilizando un set de datos artificial.

¿Cómo generamos datos artificiales con PyTorch?

Comencemos con algo básico pero esencial: generar datos artificiales que nos ayudarán a entrenar nuestro modelo. Usaremos PyTorch, una biblioteca famosa por su versatilidad en tareas de machine learning.

import torch
import matplotlib.pyplot as plt

# Generar datos en X
X = torch.arange(0, 1, 0.025).unsqueeze(1)

# Crear función lineal para Y
Y = X * 2.5 + 1.0

Al usar la función torch.arange, creamos un tensor que va de 0 a 1 en pasos de 0.025. Posteriormente, ajustamos la forma del tensor con unsqueeze para que sea compatible con nuestro modelo.

¿Cómo se define el conjunto de entrenamiento y prueba?

Para medir el rendimiento de nuestro modelo, es crucial dividir los datos en un conjunto de entrenamiento y uno de prueba. Así, podremos evaluar la capacidad del modelo para prever datos nuevos que no ha visto durante su entrenamiento.

# Determinación del tamaño de entrenamiento
train_size = int(0.7 * len(X))

# Crear los conjuntos de entrenamiento y prueba
X_train, Y_train = X[:train_size], Y[:train_size]
X_test, Y_test = X[train_size:], Y[train_size:]

Optamos por usar el 70% de los datos para entrenamiento, marcando el límite en el índice calculado train_size. Esto nos deja el 30% restante para la validación.

¿Cómo visualizar nuestros datos?

Visualizar cómo están distribuidos nuestros datos de entrenamiento y prueba, así como las predicciones del modelo, es crucial para entender el rendimiento.

def plot_predictions(train_data, test_data):
    plt.scatter(train_data[0].numpy(), train_data[1].numpy(), label='Entrenamiento', color='green')
    plt.scatter(test_data[0].numpy(), test_data[1].numpy(), label='Prueba', color='yellow')
    plt.legend()
    plt.show()

plot_predictions((X_train, Y_train), (X_test, Y_test))

Esta función plot_predictions nos brinda una representación gráfica clara de nuestros datos. Los puntos verdes indican datos de entrenamiento y los amarillos, los de prueba, permitiéndonos visualizar su distribución.

¿Qué sigue después?

Ahora que nuestros datos están listos y bien divididos, estamos en la etapa adecuada para definir la arquitectura del modelo de regresión lineal. Este proceso te permitirá darle vida al modelo y comprender cómo interactúa con los datos. ¡Mantente atento a la siguiente clase, donde profundizaremos en este emocionante paso!