본문 바로가기
DATA Science/Google Machine Learning

데이터 분할

by Rainbound-IT 2021. 7. 25.
반응형

이전 모듈에서는 데이터 세트를 다음과 같이 두 부분으로 나눈다는 개념을 소개했습니다.

  • 학습 세트 - 모델을 학습시키기 위한 데이터 세트의 일부분
  • 평가 세트 - 모델을 테스트하기 위한 데이터 세트의 일부분

데이터 세트 하나를 다음과 같이 분할하는 방법을 생각해 볼 수 있습니다.

그림 1. 데이터 세트 하나를 학습 세트와 평가 세트로 분할

평가 세트는 다음 두 가지 조건을 만족해야 합니다.

  • 통계적으로 유의미한 결과를 도출할 만큼 커야 합니다.
  • 데이터 세트를 전체적으로 나타내야 합니다. 즉, 평가 세트가 학습 세트와 같은 특징을 가지도록 선별해야 합니다.

평가 세트가 위와 같은 두 가지 조건을 만족한다면 이제 새로운 데이터에도 일반화될 수 있는 모델을 만드는 것이 목표입니다. 평가 세트는 새 데이터를 모의 실험하는 역할을 합니다. 다음 그림을 예로 들어 보겠습니다. 여기에서 학습 데이터를 익힌 모델은 매우 단순합니다. 이 모델은 그다지 완벽하지 않으며 몇 가지 예측이 빗나갔습니다. 그러나 테스트 데이터에 대한 결과는 학습 데이터에 대한 결과에 비해 나쁘지 않습니다. 즉, 이 단순 모델은 학습 데이터에 과적합되지 않았습니다.

그림 2. 학습된 모델을 테스트 데이터로 검증

테스트 데이터로 학습하지 마세요. 평가 측정항목에서 이상할 정도로 좋은 결과가 나온다면 실수로 평가 세트로 학습했다는 증거일 수 있습니다. 예를 들어 정확도가 높다면 테스트 데이터가 학습 세트로 유출되었을 수 있습니다.

예를 들어 제목, 본문, 보낸 사람의 이메일 주소를 특성을 사용하여 스팸 메일을 가려내는 모델이 있다고 가정해 보겠습니다. 데이터를 80:20 비율로 학습 세트와 평가 세트로 배분했습니다. 학습 후에 모델은 학습 세트와 평가 세트 모두에서 99%의 정확성을 보입니다. 평가 세트에서는 정확성이 이보다 낮아야 하므로, 데이터를 다시 살펴본 결과 평가 세트의 예 중 다수가 학습 세트의 예와 중복되는 것으로 나타났습니다. 데이터를 분할하기 전에 입력 데이터베이스에서 동일한 스팸 메일의 중복 항목을 솎아내지 않았던 것입니다. 따라서 테스트 데이터 중 일부가 의도치 않게 학습에 사용되어, 모델이 새 데이터로 얼마나 효과적으로 일반화되는지 정확히 측정할 수 없게 되었습니다.

반응형

'DATA Science > Google Machine Learning' 카테고리의 다른 글

표현: 특성 추출  (0) 2021.07.25
추가 분할(검증데이터 추가?)  (0) 2021.07.25
일반화 : 과적합의 위험  (0) 2021.07.25
Tensorflow 실습 첫번째  (0) 2021.07.25
Pandas 실습  (0) 2021.07.25

댓글