머신러닝 모델을 학습시킬 때 데이터를 train, validation, test set으로 나눕니다. 왜 이렇게 나누는지 알아보겠습니다.
우리가 1000명의 혈액검사 데이터와 같은 사람의 A라는 질병 유무 데이터를 갖고 있다고 합시다. 이 데이터를 이용하여 질병 A를 진단하는 머신러닝 모델을 만들려고 합니다.
1000명의 데이터 전체를 사용하여 머신러닝 모델을 만들면, 우리가 만든 머신러닝모델이 정확한지 평가할 데이터가 없습니다. 모델을 둘로 나눠서 일부는 모델 학습에 사용하고 나머지는 모델 평가에 사용하기로 했습니다.
1000명 중 임의로 250명을 뽑아서 모델 평가에 사용할 것입니다. 이렇게 뽑힌 250명을 test set이라고 부르고, 나머지 750명을 train set 이라고 부르겠습니다.
train set : 모델 학습에 사용
test set : 모델 평가에 사용
train set 으로 모델을 학습시키고, test set 으로 평가합니다. 하이퍼파라미터를 변경해가며 test set의 결과를 개선합니다.
위 방법에는 어떤 문제가 있을까요?
위 방법의 문제는 모델을 개선하는데 test set을 사용했다는데 있습니다. 당연히 하이퍼파라미터들은 test set에서 좋은 결과를 얻도록 개선될 것입니다. 하지만 이 모델이 일반적인 상황에 잘 맞는지 확인할 수가 없습니다.
이 문제를 해결하기 위해 데이터를 셋으로 나누게 된 것입니다. 아래와 같이 셋으로 나눕니다.
train set : 모델 학습에 사용
validation set : 모델 개선에 사용
test set : 모델 평가에 사용
train set 으로 모델을 학습시키고 valdation set 으로 성능을 계산하며 하이퍼 파라미터를 수정합니다. test set 을 이용하여 최종 모델의 성능을 평가합니다.
'기타 강의 > 머신러닝 모델 검증의 이해' 카테고리의 다른 글
[머신러닝 모델 검증의 이해] 3. k-fold cross validation (0) | 2023.11.16 |
---|---|
[머신러닝 모델 검증의 이해] 2. train set 은 한번만 뽑으면 되나? (0) | 2023.10.10 |
댓글