카테고리 없음

(4) ML - Class Imbalance

하오츠(해석:맛있다) 2024. 11. 26. 16:47

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을 높이기 위해 임계값을 조정할 수 있음