Dividir os dados em treino e teste usando train_test_split de sklearn.model_selection
Nesta etapa, prepararemos nossos dados para o processo de treinamento. Uma parte crucial do machine learning é avaliar o modelo em dados que ele nunca viu antes. Para fazer isso, dividimos nosso conjunto de dados em duas partes: um conjunto de treinamento e um conjunto de teste. O modelo aprenderá com o conjunto de treinamento, e usaremos o conjunto de teste para ver o quão bem ele se sai.
Primeiro, precisamos separar nossas features (as variáveis de entrada, X) do nosso target (o valor que queremos prever, y). No nosso caso, X serão todas as colunas, exceto MedHouseVal, e y será a coluna MedHouseVal.
Em seguida, usaremos a função train_test_split de sklearn.model_selection para realizar a divisão.
Adicione o seguinte código ao seu arquivo 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
Agora, execute o script novamente a partir do terminal:
python3 main.py
Você verá as formas dos conjuntos de treinamento e teste recém-criados impressas abaixo do DataFrame. Isso confirma que os dados foram divididos corretamente.
--- Data Split ---
X_train shape: (16512, 8)
X_test shape: (4128, 8)
y_train shape: (16512,)
y_test shape: (4128,)