본문 바로가기
성공지식백과 로고성공지식백과
GLOSSARY

학습·테스트 분할 (Train-Test Split)

중급

이 페이지는 AI 문맥에서 자주 쓰이는 학습·테스트 분할 (Train-Test Split)의 뜻과 쓰임을 중급 난이도 기준으로 정리한 AI 용어사전 항목입니다. 정의와 맥락, 관련 용어 6개 순서로 묶었으니, 아래 설명을 먼저 읽고 연결된 개념과 글까지 이어서 보면 이해가 빨라집니다.

학습·테스트 분할(Train-Test Split)은 모델을 학습시킬 데이터와 학습에 쓰지 않고 성능을 평가할 데이터를 나누는 절차입니다. 학습 자료를 다시 맞히는 정도와 새 자료에 적용하는 능력을 구분하기 위해 사용합니다. 나누는 비율만큼 분할 단위와 순서가 중요하며, 같은 사람의 반복 기록이나 시간 의존성이 있는 자료는 배포 상황에 맞는 기준으로 구분합니다.

입력과 정답을 함께 나누는 절차

scikit-learn의 train_test_split 문서는 입력 배열들을 같은 분할에 맞춰 학습용과 테스트용으로 나누는 기능을 설명합니다. 입력 행과 정답 레이블은 짝을 유지해야 합니다. 두 배열을 서로 다른 무작위 순서로 섞으면 입력에 엉뚱한 정답이 붙어, 분할 이후의 학습과 모델 평가가 모두 잘못됩니다.

이 함수의 test_size는 테스트 부분의 비율 또는 표본 수를 정하고, 정수 random_state는 반복 호출에서 같은 분할을 재현하는 데 쓰입니다. 데이터와 조건이 같을 때 같은 나눔을 얻도록 하는 설정이지, 그 나눔이 모든 배포 상황을 대표한다는 보증은 아닙니다. 실험 기록에는 비율과 난수 설정뿐 아니라 어떤 데이터 버전을 나눴는지도 남깁니다.

층화와 분할 단위의 차이

분류 문제에서 stratify에 클래스 레이블을 전달하면 클래스 비율을 고려한 층화 분할을 합니다. scikit-learn의 함수 문서는 이 옵션을 클래스 레이블 기준으로 설명합니다. 드문 클래스가 시험 자료에서 사라지는 문제를 줄이는 데 유용하지만, 같은 고객이나 기기의 기록을 묶어 나누는 기능과는 역할이 다릅니다. 레이블 비율이 비슷해도 같은 대상의 정보가 양쪽에 남을 수 있습니다.

scikit-learn의 교차 검증 해설은 일반 train_test_split이 그룹 관계를 고려하지 못한다고 명시합니다. 새 고객에 대한 성능이 목적이라면 고객 단위로 묶어 분할하는 방식을 검토합니다. 미래 시점의 예측이 목적이라면 과거를 학습에, 이후 관측을 평가에 두는 시간 기준이 필요합니다. 무작위로 행을 섞는 기본 방식이 맞는지는 관측들의 관계와 실제 예측 상황에 달려 있습니다.

검증 데이터와 최종 시험의 역할

모델 설정을 고를 때마다 테스트 점수를 보고 유리한 설정을 선택하면 테스트 정보가 선택 과정에 반영됩니다. scikit-learn의 평가 절차 설명은 학습, 설정 선택용 검증, 최종 테스트의 역할을 구분합니다. 교차 검증으로 학습 자료 안에서 여러 분할을 시험하더라도 최종 평가용 자료를 따로 남길 수 있습니다. 분할을 여러 번 했다는 사실만으로 시험 자료가 독립적으로 유지되지는 않습니다.

나누는 비율에는 학습에 쓸 정보의 양과 평가에 쓸 정보의 양 사이의 선택이 들어갑니다. 구글의 데이터 분할 해설은 시험 표본이 통계적으로 의미 있고 전체 자료를 대표해야 한다고 설명합니다. 테스트 비율이 같아도 전체 데이터가 작으면 드문 클래스의 관측 수가 부족할 수 있습니다. 비율 이름만 기록하기보다 클래스별 건수와 평가 대상 범위를 함께 살핍니다.

데이터 레이블링 기준이나 수집 환경이 배포 환경과 다르면 잘 나눈 시험셋도 다른 질문에 답하게 됩니다. 특정 기간의 기존 고객만으로 평가했다면 그 결과가 새 지역의 신규 고객까지 설명하는지는 별도 확인 사항입니다. 분할 명세에 포함·제외 기준, 그룹 키, 시간 경계와 데이터 버전을 남기면 벤치마크 결과를 나중에 다시 해석할 때 어떤 조건의 성능인지 추적할 수 있습니다.

RELATED TERMS

관련 용어

학습·테스트 분할 (Train-Test Split)와 함께 자주 언급되는 개념들입니다. 비슷한 말처럼 보여도 역할과 쓰임은 다를 수 있습니다.