1. Class Imbalance
: 기계 학습과 분류 문제에서 발생하는 현상 중 하나, 클래스 간의 데이터 불균형을 나타내는 개념
: 하나의 클래스가 다른 클래스에 비해 데이터 포인트 수가 현저히 적을때 바랭
: 현실 세계의 불균형한 데이터 분포를 가짐
: 데이터 수집과정에서 클래스 불균형 발생 - Sampling 오류, Data 수집 방법, Labeling 오류
2. Class Imbalance 를 줄이는 방법 2가지
- 데이터 기반 접근법
: Resampling
: ML Algorithm 접근법
3. Resampling
: 데이터 수를 조절하여 Class Imbalance를 다루는 방법
- OverSampling
: 소수 클래스 데이터를 확장하지만, 데이터 중복 및 과적합 문제가 발생할 수 있음
- UnderSampling
: 다수 클래스 데이터를 줄이지만 정보 손실을 발생할 수 있음
- Combined Sampling
4. Over Sampling
SMOTE(Syntheic Minority Over-sampling)
: 소수 클래스 데이터 포인트들을 기존 데이터를 활용하여 데이터를 균형화하는 것
: 소수 클래스와 그 주변 이웃 데이터 포인트로 사이를 보간하여 생성
- 장점 : 다양한 데이터 생성이 가능하며, 모델의 일반화 능력을 향상시킬 수 있음
- 단점 : 데이터 중복이 발생할 수 잇음
ADASYN(Adaptive Synthetic Sampling)
: 소수 클래스 데이터 포인들들을 기존 데이터를 활용하여 데이터를 균형화하는 방법
: 소수 클래스 데이터 포인트의 가중치를 계산하고, 높은 가중치를 가지는 데이터 포인트에 대해 더 많은 합성을 수행
- 장점 : 데이터 분포에 더욱 더 적응적으로, 클래스 간의 거리에 따라 합성을 조절하여 불균형을 더 효과적으로 다룰 수 잇음
- 단점 : SMOTE 에 비해 더 복잡하며, 계산 비용을 높일 수 있음
5. UnderSampling
Random UnderSampling
: 랜덤 언더샘플링은 다수 클래스 데이터 포인트 중에서 무작위로 일부 데이터를 선택하여 소수 클래스와의 균형을 맞춤
장점 : 간단
단점 : 정보 손실 -> 선택된 데이터가 소수 클래스를 잘 대표하지는 않을 수 있음
Tomek Links UnderSampling
: 클래스 간 거리가 가까운 데이터 포인트 쌍중에 서로 다른 다수 클래스의 데이터를 제거하는 방법
: 클래스 사이 경계를 명확하게 함
ENN(Edited Nearest Neighbors)
: 클래스 간의 거리가 가까운 데이터 포인트 쌍에서 다수 클래스의 데이터 제거하는 방법
: 오분류된 데이터를 삭제
6. ConbinedSampling
SMOTEEEN
: 두 기술을 함께 사용하여 클래스 불균형을 해결
장점 : 두 기술을 조합함으로써 클래스 불균형을 효과적으로 해결 가능
단점 : 모델 성능은 데이터 셋의 특성과 문제에 따라 정보 손실을 발생할 수 있으며, 실험과 비교 분석이 필요함
7. ML Algorithm
: 모델 알고리즘 선택, 클래스 가중치 조정, 임계값 조정, 적절한 Metric 사용, Hyper-parameter tuning, Validation, Ensenble
* class imbalance 에서 precision, recall, f1-score
- precision(정밀도) : 거짓 양성을 줄이고 모델이 정환한 예측을 하는데 얼마나 잘하는지
- recall(재현율) : 거짓 양성을 줄이고 모델이 실제 양성을 놓치지 않는데 얼마나 잘하는지를 나타냄
- f1-score : precision과 recall
8. 모델 튜닝 및 파라미터 조정
: Class Imbalance 를 고려하여 모델을 Tuning 하는 과정
: 모델은 소수 클래스를 더 잘 식별할 수 있게 해줌
: Weight 조정 - 가중치를 조절해서 소수 클래스에 대한 높은 중요도를 부여가능
: Threshold 조정 - 분류 모델에서 임계값을 조정하여, 모델 평가 지표를 향상시킬 수 있음, recall을 높이기 위해 임계값을 조정할 수 있음