MLY:07. 개발 세트와 테스트 세트의 크기



개발 세트는 개발팀에서 시도한 여러 알고리즘 사이의 차이를 감지할 만큼 커야 합니다. “A 분류기”의 정확도가 90.0%이고, “B 분류기”의 정확도가 90.1%라고 가정합니다. 개발 세트가 100건1으로는 두 알고리즘 성능 0.1%의 차이를 감지할 수 없습니다. 저자의 예전 기계 학습 경험을 비춰볼 때, 개발 세트 100개는 너무 작습니다. 개발 세트 크기는 1,000개에서 10,000개가 일반적입니다. 개발 세트 10,000개를 사용하면 0.1% 향상2을 감지할 수 있습니다.

광고, 웹 검색 및 제품 추천과 같이 성숙하고 중요한 애플리케이션의 경우에, 작은 성능 향상도 회사의 이익에 직접적인 영향을 주기 때문에, 0.01% 성능 개선도 개발팀에 큰 동기 부여가 되기도 합니다. 이 경우에, 개발 세트는 훨씬 더 작은 성능 개선을 탐지하기 위해서 10,000개 보다 훨씬 더 커야 합니다.

테스트 세트의 크기는 어떨까요? 시스템의 전반적인 성능을 높은 신뢰로 제공할 수 있을만큼 충분히 커야합니다. 일반적인 경험적인 방법은 전체 데이터의 30%를 테스트 세트로 사용하는 것입니다. 이 방식은 전체 데이터가 100개에서 10,000개인 작은 규모에 적합합니다. 그러나 현재는 빅데이터 시대입니다. 10억 개가 넘는 데이터를 기계 학습하는 경우가 종종 발생합니다. 이런 경우에 개발/테스트 세트에 할당되는 비율이 줄어들고 있습니다. 할당 비율은 줄어들고 있지만 기반 데이터가 매우 크기 때문에 개발 및 테스트 세트의 실제 데이터 수는 늘어나고 상항입니디. 알고리즘 성능을 평가하는 데 필요한 것 이상으로 과도하게 큰 개발 세트와 테스트 세트를 가질 필요는 없습니다.

이 문서는 Andrew NG 교수님께서 집필 중인 Machine Learning Yearning의 7장 번역입니다. 원제는 “7. How large do the dev/test sets need to be?” 입니다. 원문 Ebook은 http://www.mlyearning.org 에서 구독할 수 있습니다.


  1. <역자주> 원문은 100 example입니다. Example은 데이터 세트의 한 행을 의미합니다. Example은 하나 이상의 특성을 포함하며, 라벨을 포함할 수도 있습니다 [return]
  2. 이론적으로, 알고리즘 변경이 개발 세트에 통계적으로 유의미한 차이를 만든다면 테스트를 수행할 수도 있습니다. 실무에서는 일반적으로 학문적으로 연구 논문을 게시하지 않는 한 이런 작업에 신경을 쓰지 않습니다. 보통 중간 진행 상황을 측정하는 데 유용한 통계적 중요 테스트를 확인하지 않습니다. [return]
김태완 avatar
작성자: 김태완
1999년 부터 Java, Framework, Middleware, SOA, DB Replication, Cache, CEP, NoSQL, Big Data, Cloud를 키워드로 살아왔습니다. 현재는 빅데이터와 Machine Learning을 중점에 두고 있습니다.
E-mail: taewanme@gmail.com