클래스 불균형 해결: Class Weights
ㅁ 클래스 불균형 해결
ㅇ 정의:
클래스 불균형 해결은 데이터셋에서 특정 클래스의 샘플 수가 다른 클래스에 비해 현저히 적거나 많은 경우, 모델의 학습 성능을 개선하기 위해 이를 조정하는 방법이다.
ㅇ 특징:
– 클래스 불균형은 모델이 다수 클래스에 치우친 예측을 하게 되는 문제를 야기할 수 있다.
– 이를 해결하기 위해 다양한 기법이 사용되며, 데이터 레벨 및 알고리즘 레벨 접근 방식으로 나뉜다.
ㅇ 적합한 경우:
– 의료 진단 데이터와 같이 특정 클래스가 매우 드문 경우.
– 사기 탐지와 같은 문제에서 극히 적은 사례를 다루는 경우.
ㅇ 시험 함정:
– 클래스 불균형 문제를 해결하지 않고 모델을 평가하면 높은 정확도가 나타날 수 있으나 이는 실제 성능을 제대로 반영하지 못함.
– 클래스 불균형 해결 방법의 선택이 데이터셋의 특성과 목적에 따라 달라질 수 있음.
ㅇ 시험 대비 “패턴 보기” 예시:
– O: 클래스 불균형 문제를 해결하기 위해 데이터 증강 기법을 사용할 수 있다.
– X: 클래스 불균형 문제는 항상 클래스 가중치로만 해결해야 한다.
================================
1. Class Weights
ㅇ 정의:
클래스 가중치는 모델 학습 시 각 클래스에 다른 가중치를 부여하여 불균형 데이터를 처리하는 방법이다.
ㅇ 특징:
– 손실 함수 계산 시 각 클래스의 중요도를 반영하여 모델이 적은 클래스에 대해 더 잘 학습하도록 유도한다.
– 데이터셋에 새로 데이터를 추가하지 않으므로 시간과 자원이 절약된다.
ㅇ 적합한 경우:
– 데이터 증강이 어려운 경우.
– 데이터가 극도로 불균형한 경우.
ㅇ 시험 함정:
– 클래스 가중치를 잘못 설정하면 오히려 성능이 저하될 수 있다.
– 클래스 가중치 적용이 모든 모델에 적합하지는 않다.
ㅇ 시험 대비 “패턴 보기” 예시:
– O: 클래스 가중치는 손실 함수 계산 시 클래스별로 다른 가중치를 부여한다.
– X: 클래스 가중치는 데이터 증강과 동일한 방식으로 작동한다.
ㅁ 추가 학습 내용
클래스 불균형 문제 해결 방법과 성능 지표에 대해 학습하기 위해 아래 내용을 정리합니다.
1. **클래스 불균형 문제 해결 방법**:
– **Over-sampling**: 데이터셋에서 소수 클래스의 데이터를 인위적으로 증가시키는 방법입니다. 대표적인 기법으로는 SMOTE(Synthetic Minority Over-sampling Technique)가 있습니다. SMOTE는 소수 클래스 데이터를 기반으로 새로운 데이터를 생성하여 클래스 간 균형을 맞춥니다.
– **Under-sampling**: 다수 클래스의 데이터를 줄이는 방법입니다. 다수 클래스에서 일부 데이터를 제거하여 클래스 간 균형을 맞춥니다. 이 방법은 데이터 손실이 발생할 수 있으므로 신중히 적용해야 합니다.
2. **성능 지표**:
– **Precision**: 모델이 예측한 긍정 클래스 중 실제로 긍정 클래스인 데이터의 비율을 나타냅니다. 계산식은 TP / (TP + FP)입니다. Precision은 False Positive를 줄이는 데 초점이 맞춰져 있습니다.
– **Recall**: 실제 긍정 클래스 중 모델이 올바르게 예측한 데이터의 비율을 나타냅니다. 계산식은 TP / (TP + FN)입니다. Recall은 False Negative를 줄이는 데 초점이 맞춰져 있습니다.
– **F1-score**: Precision과 Recall의 조화 평균으로, 두 지표 간의 균형을 평가합니다. 계산식은 2 * (Precision * Recall) / (Precision + Recall)입니다. F1-score는 클래스 불균형 상황에서 모델의 전반적인 성능을 평가하기에 적합합니다.
위 내용을 학습하여 클래스 불균형 문제를 해결하고 모델 성능을 적절히 평가할 수 있도록 준비하시기 바랍니다.