AI 모델 개발: 클래스 불균형 해결 – Cost-sensitive Learning

ㅁ 클래스 불균형 해결

ㅇ 정의:
데이터의 클래스 비율이 크게 차이날 때, 학습 시 소수 클래스의 오분류 비용을 높여 모델이 소수 클래스에 더 민감하게 반응하도록 하는 기법.

ㅇ 특징:
– 각 클래스별로 다른 비용(가중치)을 손실 함수에 반영.
– 소수 클래스의 학습 비중을 높여 예측 성능 개선.
– 데이터 샘플링 없이도 적용 가능.
– 비용 설정이 잘못되면 오히려 성능 저하 가능.

ㅇ 적합한 경우:
– 데이터 수집이 어려워 소수 클래스의 데이터 양을 늘리기 힘든 경우.
– 오분류 비용이 실제로 다르게 발생하는 비즈니스 문제(예: 사기 탐지, 질병 진단).

ㅇ 시험 함정:
– 단순히 클래스 비율을 맞추는 오버샘플링/언더샘플링과 혼동.
– 비용 가중치는 모델의 손실 함수에 직접 반영된다는 점을 간과.
– 비용을 높이면 항상 성능이 좋아진다고 생각하는 오해.

ㅇ 시험 대비 “패턴 보기” 예시:
O: “소수 클래스의 분류 오류에 더 큰 패널티를 부여하여 모델 학습을 조정한다.”
X: “소수 클래스의 데이터를 복제하여 데이터셋의 클래스 비율을 맞춘다.”

ㅁ 추가 학습 내용

Cost-sensitive Learning은 각 클래스별 오분류 비용을 다르게 적용하기 위해 비용 행렬을 정의하는 방법이다. 시험에서는 비용 행렬을 손실 함수에 곱하는 수식 형태나 scikit-learn의 class_weight=’balanced’ 옵션과의 관계를 물을 수 있다. 이는 불균형 데이터 문제 해결 방법 중 하나로, SMOTE, 언더샘플링, 오버샘플링과의 비교 문제가 자주 출제된다. 실제 적용 시 비용 가중치를 과도하게 설정하면 다수 클래스의 성능이 급격히 저하될 수 있으며, ROC-AUC, F1-score 등 불균형 데이터에 적합한 평가 지표와 함께 사용해야 한다.

답글 남기기

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

*
*