Train Test Size
포스트 난이도: HOO_Senior
# Train Test Size
ML(Machine learning)을 돌리기 위해서 설정해줘야 하는 초기 설정 값들이 있다. 앞선 포스트에서 다룬 Learning rate나 Epoch가 이에 해당하며, Momentum이나 Seed도 해당된다. (Momentum과 Seed는 다음 포스트를 통해서 이야기를 나눠보도록 하자.) 이번 포스트에서 다루는 Test size 또는 Train test size 또한 ML 과정에서 기본적으로 설정해줘야 하는 값 중에 하나이다. 이러한 설정 값들은 Note 작성에 있어 처음에 선언해주는 것이 추후에 여러 번 ML 과정을 시도할 때 수정하기가 용이하다.
Train test size 또는 Test size는 머신러닝을 통해 얻은 학습 결과를 테스트 해보는 시험지와 같은 역할을 담당한다. 테스트용 데이터가 별도로 존재할 수도 있지만 전체 데이터에서 일부를 테스트 데이터로 지정해서 테스트를 하기도 한다. 이때 필요한 것이 Test size를 지정하여 테스트에 사용되는 데이터는 머신러닝을 통해 훈련하는 과정에서 사용되지 않는다. 한마디로 Test size에 포함되는 데이터는 모의고사 시험지라고 생각하면 된다.
# 적정한 Test size의 크기
머신러닝(Machine learning)을 돌리기 위해서는 Train data와 Test data를 나눠줘야 한다. 이때 고민이 되는 것이 얼마큼의 비중으로 데이터를 나눠서 학습을 하는 것인가이다. 사실 테스트 데이터와 트레이닝 데이터를 나눠주는데 절대적인 정답이 없다. 왜냐하면 각 프로젝트마다 요구하는 조건이 다르며, 데이터의 양이나 종류 자체도 다르기 때문이다. 그렇다 보니 정답이 정해져 있는 수학 문제와 같이 머신러닝의 트레이닝과 테스트 데이터의 비중을 특정하게 정할 수가 없다.
HOO = {
'epochs': 20,
'batch_size': 32,
'learning_rate': 1e-3,
'momentum': 0.9,
'test_size': 0.05,
'seed': 1
}
하지만 신속한 최적의 값을 찾기 위해서 시도해볼만한 값들이 있다. 필자의 경우에는 데이터의 양을 우선적으로 고려한다. 데이터의 양이 많을 경우에는 트레이닝 데이터를 95%로 잡고 테스팅 데이터를 5%로만 잡아도 충분하다. 왜냐하면 데이터 양 자체가 많기 때문에 5%라고만 해도 테스트를 통해 검증할만한 데이터양이 충분하기 때문이다. 하지만 반대로 데이터 양이 많지 않을 경우에는 30%까지 테스트 데이터로 지정을 해야 할 수도 있다. 예를 들어서 공부를 한 학생의 학습능력을 검증한다고 했을 때 전체 문제가 1만 개의 문제가 있다고 가정한다면 5%만 잡아도 500문제에 해당한다. 반면에 전체 문제가 겨우 100문제만 있다면 5%에 해당하는 5문제로는 학생의 학습 능력을 검증하는데 의문이 생길 수 있다. 이와 마찬가지로 머신러닝 또한 테스트 데이터를 통해서 학습 능력을 검증하는데 의문점이 생기지 않게 하기 위해서는 데이터 양을 고려해서 테스트 데이터 양을 지정해줘야 한다.
'AI & Data' 카테고리의 다른 글
[Machine Learning] Batch Size, Iteration (0) | 2022.07.29 |
---|---|
[Machine Learning] Momentum(모멘텀) (0) | 2022.07.27 |
[Data Science] Data Science vs Data Analyst vs Data Engineering (0) | 2022.07.18 |
[Machine Learning] Training Dataset vs Testing Dataset (0) | 2022.07.17 |
[Machine Learning] Learning Rate(학습률) (0) | 2022.07.15 |
댓글