Dividir los datos en entrenamiento y prueba usando train_test_split de sklearn.model_selection
En este paso, prepararemos nuestros datos para el proceso de entrenamiento. Una parte crucial del aprendizaje automático es evaluar el modelo con datos que nunca ha visto antes. Para hacer esto, dividimos nuestro conjunto de datos en dos partes: un conjunto de entrenamiento y un conjunto de prueba. El modelo aprenderá del conjunto de entrenamiento y utilizaremos el conjunto de prueba para ver qué tan bien se desempeña.
Primero, necesitamos separar nuestras características (las variables de entrada, X) de nuestro objetivo (el valor que queremos predecir, y). En nuestro caso, X serán todas las columnas excepto MedHouseVal, y y será la columna MedHouseVal.
Luego, utilizaremos la función train_test_split de sklearn.model_selection para realizar la división.
Agregue el siguiente código a su archivo main.py.
from sklearn.model_selection import train_test_split
## Prepare the data
X = california_df.drop('MedHouseVal', axis=1) ## Features (input variables)
y = california_df['MedHouseVal'] ## Target variable (what we want to predict)
## Split the data into training and testing sets
## test_size=0.2: Reserve 20% of data for testing, 80% for training
## random_state=42: Ensures reproducible splits (same result every run)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
## Print the shapes of the new datasets to confirm the split
print("\n--- Data Split ---")
print("X_train shape:", X_train.shape) ## Training features
print("X_test shape:", X_test.shape) ## Test features
print("y_train shape:", y_train.shape) ## Training target values
print("y_test shape:", y_test.shape) ## Test target values
Ahora, ejecute el script nuevamente desde la terminal:
python3 main.py
Verá las formas de los conjuntos de entrenamiento y prueba recién creados impresas debajo del DataFrame. Esto confirma que los datos se han dividido correctamente.
--- Data Split ---
X_train shape: (16512, 8)
X_test shape: (4128, 8)
y_train shape: (16512,)
y_test shape: (4128,)