불균형 데이터셋(imbalanced dataset)은 관심 있는 결과가 드문 곳이라면 어디서나 흔합니다. 이탈, 파산, 결함, 사기가 그 예입니다. imbalanced-learn 같은 라이브러리에는 이런 데이터로 학습할 때 쓰는 표준 기법이 모여 있습니다.
CUBIG의 UCI Iranian Churn 실험(2026년 10월)을 보면 그 규모를 알 수 있습니다. 평가 세트의 고객 630명 가운데 이탈 고객은 99명이었습니다. 모델 설정을 바꾸지 않은 상태에서 로지스틱 회귀는 데이터 준비 전에 이 가운데 42명을, 준비 후에 78명을 찾아냈고, 잘못된 경보는 8건에서 41건으로 늘었습니다.
팀이 불균형을 다루는 일반적인 방법은 다음과 같습니다.
- 학습 데이터에서 소수 클래스 예시를 추가하거나 다수 클래스 예시를 제거하는 리샘플링
- 학습 중 희귀 클래스의 오류에 더 큰 비용을 매기는 클래스 가중치
- 기본값을 그대로 쓰지 않고 업무에 맞게 정하는 결정 임곗값
- 희귀 사례의 예시를 더 수집하거나 준비하는 방법
불균형 데이터셋에서는 왜 정확도가 오해를 부르나요?
- 양성 사례가 2%라면 매번 음성으로 예측하는 모델도 정확도가 98%이지만, 아무것도 찾아내지 못합니다.
- 정밀도와 재현율, F1 점수는 희귀 클래스를 직접 들여다봅니다.
- 혼동 행렬을 보면 희귀 사례를 몇 건 찾았고 그와 함께 잘못된 경보가 몇 건 나왔는지 알 수 있습니다.
AI 업무에서 불균형 데이터셋은 어디서 문제가 되나요?
어떤 해결책을 쓰든 오류의 구성이 바뀝니다. 희귀 사례를 더 많이 찾으면 보통 잘못된 경보도 늘어납니다. CUBIG의 데이터 준비 실험 5건 요약에 나온 비교도 이를 보여 줍니다. 평가는 리샘플링한 평가 데이터가 아니라 실제 클래스 비율을 유지한 레코드로 해야 합니다. 결과는 업무에서 놓친 사례 하나와 잘못된 경보 하나에 각각 어떤 비용이 드는지를 기준으로 판단합니다.