반응형
불균형 데이터의 정의
- 한 클래스의 샘플 수가 다른 클래스에 비해 월등히 많거나 적은 데이터 셋을 의미
- 즉, 어떤 데이터에서 데이터의 양에 차이가 큰 경우를 의미
- 예) 병원에서 질병이 있는 사람과 질병이 없는 사람의 데이터 수집
- 일반적 데이터 : 질병이 있는 사람이 질병이 없는 사람에 비해 적음
- 불균형 데이터 : '병원의 데이터' 클래스가 '일반적 데이터' 클래스와의 월등히 많은 차이 존재
불균형 데이터의 문제점
- 모델이 단순히 우세한 클래스를 택하여 정확도를 높이기 때문에 모델의 성능판별이 어려워짐
- 즉, 정확도(accuracy)가 높아도 데이터 개수가 적은 클래스의 재현율(recall-rate)이 급격히 작아지는 현상 발생
사실 | |||
참(Positive) | 거짓(Negative) | ||
실험 결과 | 참(Positive) | TP(True Positive) | FP(False Positive) |
거짓(Negative) | FN(False Negative) | TN(True Negative) |
* 아래의 포스팅에서 이진 분류 결과표를 보고 이해하는게 더 쉬울 수 있음
2022.05.08 - [Programming/Machine Learning (Python)] - 분류 문제의 인공지능 성능 평가 - 분류결과표, 정확도, 평가 지표
불균형 데이터의 처리 방법
가중치 균형방법(Weighted Balancing)
- 데이터에서 손실(loss)을 계산할 때 특정 클래스의 데이터에 더 큰 loss 값을 갖도록 하는 방법
- 데이터 클래스의 균형이 필요한 경우, 각 클래스별 특정 비율로 가중치를 주어서 분석하거나 결과 도출하는 것
고정 비율 이용
- 클래스의 비율에 따라 가중치를 두는 방법
- 예) 클래스의 비율이 1:5일 경우
- 가중치 : 5:1로 설정
- 효과 : 적은 샘플 수를 가진 클래스를 전체 손실에 동일하게 기여
최적 비율 이용
- 분야와 최종 성능을 고려해 가중치 비율의 최적 세팅을 찾으면서 가중치를 찾아가는 방법
언더샘플링(Undersampling)과 오버샘플링(Oversampling)
언더샘플링
- 다수 클래스 데이터에서 일부만 사용하는 방법
- 대표 클래스(Majority Class)의 일부만 선택
- 소수 클래스(Minority Class)는 최대한 많은 데이터를 사용
- 언더샘플링된 대표 클래스 데이터가 원본 데이터와 비교해 대표성이 있어야 함
오버 샘플링
- 소수 클래스 데이터 증가
- 소수 클래스의 본사본 생성
- 대표 클래스의 수만큼 데이터 생성
- 똑같은 데이터를 그대로 복사하는 것이기 때문에 새로운 데이터는 기존 데이터와 같은 성질을 가져야 함
효과
- 데이터 비율 조정으로 인한 정밀도 향상
참고
반응형