← AI 용어집

AI 용어집 · 기초 · 전통 ML·추천·검색

클래스 불균형 Class Imbalance

클래스 불균형은 분류 문제에서 어떤 정답 종류(클래스)는 데이터가 아주 많고 다른 종류는 아주 적은 상태를 말한다. 이 상태로 학습하면 모델이 많은 쪽만 맞히고 적지만 중요한 쪽을 놓치기 쉽다.

쉽게 말하면 100번 중 99번은 '비 안 옴'인 동네에서 매일 '비 안 옴'이라고만 말하는 예보관과 같다. 맞힌 비율은 높지만 정작 우산이 필요한 날은 한 번도 알려 주지 못한다.

어떻게 작동하나

분류 모델은 학습하면서 전체 오답을 줄이는 방향으로 움직인다. 데이터 100건 중 1건만 '사기 거래'라면, 모든 거래를 '정상'이라고 답해도 오답은 1건뿐이라 모델은 굳이 사기를 구별하는 법을 배우지 않는다. 그래서 겉보기 정확도는 높지만 소수 클래스를 거의 찾지 못하는 모델이 나온다. 사기 탐지, 희귀 질환 진단, 불량품 검출처럼 '드문 일'을 찾는 문제는 대부분 이런 모양이다.

100건 중 1건만 사기

1 / 100

해당 1나머지 99

예시: 칸 하나가 거래 1건이다. 색칠된 1칸이 사기 거래로, 모두 '정상'이라 답해도 오답은 1건뿐이다.

왜 중요한가

현실에서 찾고 싶은 것은 대개 드문 쪽이다. 사기 한 건을 놓치는 비용은 정상 거래 한 건을 잘못 의심하는 비용보다 훨씬 클 수 있다. 그래서 클래스 불균형을 모르고 정확도만 보면 쓸모없는 모델을 좋은 모델로 착각하게 된다. 평가 지표를 고르는 단계부터 이 문제를 의식해야 한다.

알아 둘 점

대표적인 대처법은 소수 클래스 데이터를 늘리거나(오버샘플링·데이터 증강) 다수 클래스를 줄이는 것(언더샘플링)이다. 소수 클래스를 틀렸을 때 더 크게 벌점을 주도록 손실 함수에 가중치를 두는 방법도 흔하다. 평가할 때는 정확도 대신 재현율(실제 소수 사례 중 몇 개를 찾았나)과 정밀도(찾았다고 한 것 중 몇 개가 맞았나)를 함께 본다. 데이터를 나눌 때도 학습용과 평가용에 소수 클래스가 비슷한 비율로 들어가게 해야 한다.

예시

카드사의 이상 거래 탐지 시스템은 대표적인 클래스 불균형 문제를 다룬다. 정상 거래가 압도적으로 많기 때문에 사기 거래에 더 큰 가중치를 주어 학습하고, '사기를 얼마나 놓치지 않았는가'를 핵심 지표로 삼는다. 이상 탐지 기법을 함께 써서 아예 '평소와 다른 거래'를 찾는 방식으로 접근하기도 한다.

함께 보면 좋은 용어