Regresión Lineal con PyTorch: Creación y Partición de Datos Artificiales
Clase 7 de 24 • Curso 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!