Разделение данных на обучающую и тестовую выборки с помощью train_test_split из sklearn.model_selection
На этом этапе мы подготовим наши данные для процесса обучения. Важнейшей частью машинного обучения является оценка модели на данных, которые она никогда раньше не видела. Для этого мы разделяем наш набор данных на две части: обучающую выборку (training set) и тестовую выборку (testing set). Модель будет обучаться на обучающей выборке, а тестовую выборку мы будем использовать для оценки ее производительности.
Сначала нам нужно отделить признаки (переменные ввода, X) от целевой переменной (значение, которое мы хотим предсказать, y). В нашем случае X будет содержать все столбцы, кроме MedHouseVal, а y будет столбцом MedHouseVal.
Затем мы будем использовать функцию train_test_split из sklearn.model_selection для выполнения разделения.
Добавьте следующий код в ваш файл 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
Теперь снова запустите скрипт из терминала:
python3 main.py
Ниже DataFrame вы увидите размеры новых созданных обучающей и тестовой выборок. Это подтверждает, что данные были разделены корректно.
--- Data Split ---
X_train shape: (16512, 8)
X_test shape: (4128, 8)
y_train shape: (16512,)
y_test shape: (4128,)