AI: 불균형 데이터 적용 및 해석
ㅁ 불균형 데이터 적용 및 해석
ㅇ 정의:
불균형 데이터 적용 및 해석은 데이터 내 클래스 비율이 극단적으로 차이나는 상황에서 모델 성능을 공정하게 평가하고 개선하기 위한 기법과 이를 해석하는 방법을 의미함.
ㅇ 특징:
– 소수 클래스의 예측 성능 저하를 방지하기 위한 기법 필요
– 단순 정확도(Accuracy) 지표는 신뢰성이 떨어짐
– Precision, Recall, F1-score, AUC-ROC 등 다양한 지표 활용
ㅇ 적합한 경우:
– 사기 거래 탐지, 의료 진단(희귀 질병), 고장 예측 등 희귀 이벤트 탐지
ㅇ 시험 함정:
– 불균형 데이터에서 Accuracy만 보고 성능이 높다고 판단하는 경우
– 데이터 샘플링 기법과 가중치 조정 기법의 차이를 혼동
ㅇ 시험 대비 “패턴 보기” 예시:
O: “불균형 데이터에서는 Recall과 Precision을 함께 고려해야 한다.”
X: “불균형 데이터에서는 Accuracy가 가장 중요한 지표이다.”
================================
1. Focal Loss 적용
ㅇ 정의:
Focal Loss는 분류 문제에서 클래스 불균형을 완화하기 위해 Cross Entropy Loss에 난이도 조절 계수를 곱한 손실 함수로, 쉬운 예시의 손실을 줄이고 어려운 예시의 학습 비중을 높임.
ㅇ 특징:
– 감마(γ) 파라미터로 손실 곡선 조절
– 쉬운 샘플의 기여도를 낮추고 어려운 샘플에 집중
– 특히 객체 탐지(Object Detection)에서 효과적
ㅇ 적합한 경우:
– 소수 클래스 학습이 잘 되지 않는 경우
– 불균형 데이터에서 소수 클래스 Recall 향상이 필요한 경우
ㅇ 시험 함정:
– Focal Loss를 데이터 샘플링 기법과 혼동
– 감마 값이 크면 무조건 성능이 좋아진다고 오해
ㅇ 시험 대비 “패턴 보기” 예시:
O: “Focal Loss는 어려운 샘플의 손실 비중을 높인다.”
X: “Focal Loss는 쉬운 샘플의 학습을 강화한다.”
================================
2. 혼동 행렬 해석
ㅇ 정의:
혼동 행렬(Confusion Matrix)은 분류 모델의 예측 결과를 실제 클래스와 비교하여 TP, FP, TN, FN 형태로 요약한 표.
ㅇ 특징:
– 모델의 오분류 패턴을 직관적으로 파악 가능
– Precision, Recall, Specificity, F1-score 계산의 기초 자료
– 불균형 데이터에서 오분류 비용 분석에 유용
ㅇ 적합한 경우:
– 클래스별 성능 차이를 분석할 때
– 특정 클래스의 오분류 원인을 파악할 때
ㅇ 시험 함정:
– 행과 열의 의미를 바꿔 해석하는 경우
– Precision과 Recall 계산 시 분모/분자를 혼동
ㅇ 시험 대비 “패턴 보기” 예시:
O: “Recall은 TP / (TP + FN)으로 계산한다.”
X: “Precision은 TP / (TP + FN)이다.”
================================
3. 클래스 가중치 설정
ㅇ 정의:
클래스 가중치(Class Weight)는 모델 학습 시 소수 클래스의 손실 비중을 높이고 다수 클래스의 손실 비중을 낮추어 불균형 문제를 완화하는 방법.
ㅇ 특징:
– 학습 데이터의 클래스 비율에 반비례하여 가중치 부여
– 모델에 따라 자동 계산 옵션 제공(sklearn의 ‘balanced’ 등)
– 데이터 증강 없이도 불균형 완화 가능
ㅇ 적합한 경우:
– 데이터 양이 적어 오버샘플링이 어려운 경우
– 클래스별 중요도가 다른 경우
ㅇ 시험 함정:
– 클래스 가중치를 너무 높게 설정하여 과적합 발생
– 가중치 설정과 샘플링 기법을 혼동
ㅇ 시험 대비 “패턴 보기” 예시:
O: “클래스 가중치는 소수 클래스의 학습 비중을 높인다.”
X: “클래스 가중치는 다수 클래스의 학습 비중을 높인다.”
ㅁ 추가 학습 내용
불균형 데이터 평가 시 ROC-AUC와 PR-AUC의 차이를 구분해야 한다. PR-AUC는 양성 클래스가 희귀한 경우 더 적합하다.
데이터 불균형 해결 방법에는 오버샘플링(SMOTE), 언더샘플링, 데이터 증강, 앙상블 기법(Bagging, Boosting) 등이 있으며, 각 방법의 장단점을 비교할 수 있어야 한다.
Focal Loss의 α 파라미터는 클래스별 가중치 역할을 하며, γ와 함께 조정하여 최적 성능을 도출한다.
혼동 행렬 기반 지표 중 Specificity와 NPV(Negative Predictive Value)의 정의와 계산식을 숙지해야 한다.
클래스 가중치 설정 시 scikit-learn, TensorFlow, PyTorch에서의 구현 차이를 알고 있어야 하며, 자동 가중치 계산 방식과 수동 설정 방식의 차이도 이해해야 한다.