sklearn.model_selection 의 train_test_split 을 사용하여 데이터를 학습 및 테스트 세트로 분할
이 단계에서는 훈련 프로세스를 위해 데이터를 준비합니다. 머신러닝의 중요한 부분은 모델이 이전에 본 적 없는 데이터로 평가하는 것입니다. 이를 위해 데이터셋을 두 부분, 즉 훈련 세트 (training set) 와 테스트 세트 (testing set) 로 분할합니다. 모델은 훈련 세트에서 학습하고, 테스트 세트를 사용하여 성능이 얼마나 좋은지 확인할 것입니다.
먼저 특성 (features, 입력 변수, X) 과 목표 (target, 예측하려는 값, y) 를 분리해야 합니다. 이 경우 X는 MedHouseVal을 제외한 모든 열이 되고, y는 MedHouseVal 열이 됩니다.
그런 다음 sklearn.model_selection의 train_test_split 함수를 사용하여 분할을 수행합니다.
다음 코드를 main.py 파일에 추가하세요.
from sklearn.model_selection import train_test_split
## 데이터 준비
X = california_df.drop('MedHouseVal', axis=1) ## 특성 (입력 변수)
y = california_df['MedHouseVal'] ## 목표 변수 (예측하려는 것)
## 데이터를 훈련 및 테스트 세트로 분할
## test_size=0.2: 데이터의 20% 를 테스트용으로, 80% 를 훈련용으로 예약
## random_state=42: 재현 가능한 분할을 보장합니다 (실행할 때마다 동일한 결과)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
## 새로 생성된 데이터셋의 형태를 출력하여 분할 확인
print("\n--- 데이터 분할 ---")
print("X_train 형태:", X_train.shape) ## 훈련 특성
print("X_test 형태:", X_test.shape) ## 테스트 특성
print("y_train 형태:", y_train.shape) ## 훈련 목표 값
print("y_test 형태:", y_test.shape) ## 테스트 목표 값
이제 터미널에서 스크립트를 다시 실행합니다:
python3 main.py
DataFrame 아래에 새로 생성된 훈련 및 테스트 세트의 형태가 출력되는 것을 볼 수 있습니다. 이는 데이터가 올바르게 분할되었음을 확인시켜 줍니다.
--- 데이터 분할 ---
X_train 형태: (16512, 8)
X_test 형태: (4128, 8)
y_train 형태: (16512,)
y_test 형태: (4128,)