AI 모델 개발: 검증 기법 – Stratified Sampling

ㅁ 검증 기법

1. Stratified Sampling

ㅇ 정의:
데이터셋을 특정 범주(클래스) 비율이 전체 데이터와 동일하게 유지되도록 층화하여 샘플링하는 기법. 주로 분류 문제에서 클래스 불균형을 완화하기 위해 사용됨.

ㅇ 특징:
– 각 클래스의 비율을 유지하므로 소수 클래스가 학습/검증 세트에서 사라지는 것을 방지.
– 데이터 분할 시 무작위 추출(Random Sampling)에 비해 대표성이 높음.
– 교차 검증과 결합하여 사용 가능.

ㅇ 적합한 경우:
– 클래스 불균형이 심한 분류 문제.
– 소수 클래스의 예측 성능이 중요한 의료 진단, 사기 탐지 등.

ㅇ 시험 함정:
– 회귀 문제나 연속형 타겟에는 직접 적용하기 어려움(이 경우 binning 필요).
– 데이터가 충분히 크지 않으면 층화가 오히려 데이터 손실을 유발할 수 있음.
– 층화 비율을 잘못 지정하면 오히려 편향이 발생할 수 있음.

ㅇ 시험 대비 “패턴 보기” 예시:
O: “클래스 비율을 유지하기 위해 데이터를 층별로 나누어 샘플링하는 방법이다.”
X: “무작위로 데이터를 나누는 방법으로, 클래스 비율은 고려하지 않는다.”

ㅁ 추가 학습 내용

Stratified Sampling은 데이터 분할 시 각 클래스의 비율을 원본 데이터와 동일하게 유지하는 방법이다.
sklearn에서는 train_test_split 함수의 stratify 매개변수를 사용하여 쉽게 구현할 수 있으며, 교차 검증 시에는 KFold 대신 StratifiedKFold를 사용하면 클래스 비율을 유지할 수 있다.

Random Sampling은 단순히 무작위로 데이터를 분할하는 방식으로, 클래스 비율이 불균형한 데이터에서는 분할 후 비율이 달라질 수 있다.
Oversampling과 Undersampling은 학습 데이터 내 클래스 비율을 인위적으로 조정하는 데이터 전처리 기법으로, 샘플링 방식 자체가 아니라 데이터의 양과 구성을 변경하는 점에서 Stratified Sampling과 다르다.

회귀 문제에서는 타겟 값이 연속형이므로 직접 층화를 적용할 수 없으며, 연속형 값을 구간(bin)으로 나눈 후 해당 구간을 기준으로 층화를 적용한다.

데이터셋이 매우 작은 경우 층화를 적용하면 각 분할에 포함되는 데이터 수가 제한되어 모델 성능 평가의 변동성이 커질 수 있다는 점도 주의해야 한다.

답글 남기기

Your email address will not be published. Required fields are marked *.

*
*