728x90
모델의 성능을 평가하기 위해 크게 3가지 데이터셋을 준비해야 한다.
1. Train set
: 모델을 학습하는 데에 사용되는 유일한 데이터
2. Validation set
: 학습이 완료된 모델을 검증하는 데이터이며 과적합(overfitting)을 방지하기 위해 사용된다.
3. Test set
: 모델의 최종 성능을 평가하는 데에 사용된다.
Validation set을 사용하지 않는 경우도 있으며, 이런 경우에는 보편적으로 Train set과 Test set의 비율을 8:2로 나눈다. 3가지 set을 모두 사용하는 경우에는 Train : Validation : Test = 6 : 2 : 2의 비율로 나누는 게 일반적이다.
import pandas as pd
from sklearn.model_selection import train_test_split
if __name__ == '__main__':
data = [{'이름': '영수', '분야': '언어', '국어': 100, '영어': 90, '수학': 50, '과학': 45, '중국어': 92},
{'이름': '철수', '분야': '언어', '국어': 98, '영어': 99, '수학': 30, '과학': 46, '중국어': 82},
{'이름': '미혜', '분야': '수리', '국어': 20, '영어': 30, '수학': 99, '과학': 99, '중국어': 42},
{'이름': '영이', '분야': '수리', '국어': 40, '영어': 50, '수학': 80, '과학': 85, '중국어': 62},
{'이름': '영구', '분야': '언어', '국어': 70, '영어': 90, '수학': 40, '과학': 65, '중국어': 99},
{'이름': '구희', '분야': '융합', '국어': 90, '영어': 96, '수학': 60, '과학': 85, '중국어': 100},
{'이름': '지혜', '분야': '융합', '국어': 99, '영어': 92, '수학': 80, '과학': 75, '중국어': 82},
{'이름': '미영', '분야': '융합', '국어': 98, '영어': 90, '수학': 99, '과학': 100, '중국어': 82},
{'이름': '영미', '분야': '수리', '국어': 42, '영어': 40, '수학': 98, '과학': 88, '중국어': 17},
{'이름': '수환', '분야': '수리', '국어': 33, '영어': 10, '수학': 99, '과학': 89, '중국어': 22}]
data = pd.DataFrame(data)
X = data[['국어', '영어', '수학', '과학', '중국어']]
y = data['분야']
X_train, X_test, y_train, y_test = train_test_split(X, y, train_size=0.8, random_state=1)
X_train, X_val, y_train, y_val = train_test_split(X_train, y_train, test_size=0.25, random_state=1) # 0.25 x 0.8 = 0.2
print('Train:\n', y_train)
print('Validation:\n', y_val)
print('Test:\n', y_test)
결과 값
Train:
4 언어
8 수리
6 융합
1 언어
3 수리
7 융합
Name: 분야, dtype: object
Validation:
5 융합
0 언어
Name: 분야, dtype: object
Test:
2 수리
9 수리
Name: 분야, dtype: object
Train : Validation : Test = 6 : 2 : 2 로 잘 나누어진 것을 볼 수 있다.
728x90
'Data Science > Data Preprocessing' 카테고리의 다른 글
[04. Feature Sampling] 002. Stratified Random Sampling (0) | 2021.07.20 |
---|---|
[04. Feature Sampling] 001. Simple Random Sampling (0) | 2021.07.20 |
[03. Feature Engineering] 006. Dimensionality Reduction (0) | 2021.07.20 |
[03. Feature Engineering] 005. Dummy (0) | 2021.07.06 |
[03. Feature Engineering] 004. Transform (0) | 2021.06.29 |