본문 바로가기
Data Analysis/ML

[ML] 불균형 데이터 (Imbalanced Data)

by dataYANG 2022. 11. 30.
728x90

불균형 데이터 Imbalanced Data

 

불균형 데이터(Imbalaced Data)란?

레이블이 범주형인 분류 문제에서 도수 차이가 매우 커 불균형하게 나타나는 상태를 말합니다.

 

불균형 데이터의 문제점

불균형 데이터를 그대로 예측하게 된다면 과적합의 문제가 발생합니다.

예를들어 1000개의 데이터에서 1이 95개, 0이 5개 존재합니다. 이 데이터가 모두 1로 예측을 한다 하더라도 정확도는 95%의 높은 정확도가 나옵니다. 

그러면 예측을 다 1로 해! 그래도 정확도가 95%잖아! -> 쓰레기 분석

만약에 이러한 데이터가 신용카드 사기 예측이나 암환자 발생률이라 하면 큰 문제가 발생할수도 있겠죠?

따라서 오분류율을 최대한 줄이기 위해 노력해야합니다.

 


 

Undersampling & Oversampling
Undersampling & Oversampling

불균형 데이터 해결책

1. 언더샘플링(Undersampling)

언더샘플링은 데이터의 분포가 높은 값을 낮은 값으로 맞춰주는 기법입니다.

언더샘플링은 가지고있는 정보의 데이터를 줄이기 때문에 정보 손실 多

1) Random Undersampling : 말 그래도 무작위로 샘플링 과정을 거치면서 분포가 높은 클래스의 값은 조건없이 삭제시킨다. 조건 없이 삭제시키기 때문에 작업 속도가 빠릅니다.

2) Tomek Links : 클래스가 다른 두 데이터가 붙어있으면 토멕 링크가 되며, 토멕 링크에서 클래스가 많은쪽에 속하는 데이터이면 삭제하는 방법이며 경계선을 다수의 클래스 쪽으로 밀어 붙이는 효과가 있다.

3) CNN(Condesed Nearest Neighbor) : 최근접 클래스 분포 데이터를 삭제하면서 샘플링하는 기법입니다.

4) OSS(one-sided selection) : 위 2번(Tomek Links)와 3번(CNN)을 섞은 방법이다.

이 외에도 ENN(Edited Nearest Neighbors), Neighbourhood Cleaning Rule가 있습니다.


2. 오버샘플링(Oversampling)

오버샘플링은 언더샘플링과 반대로 데이터의 분포가 낮은 값을 높은 값으로 맞춰주는 기법입니다.

1) Random Oversampling : Random Undersampling과 반대로 소수의 클래스의 데이터를 반복해서 넣는 것입니다.

2) SMOTE(Synthetic Minority Over-sampling Technique) : 대표적인 오버샘플링 기법 중 하나로, 낮은 비율로 존재하는 클래스의 데이터를 KNN기법을 활용하는 방법이다. 랜덤으로 늘리는 랜덤오버샘플링보다는 과적합 발생이 적고 쉽기 때문에 많이 쓰는 방법이다.

3) Borderline-SMOTE : 클래스와의 경계에 있는 샘플들을 늘리면서 분류하는 방법입니다.

4) ADASYN(adpative synthetic sampling approach) : ADASYN방법은 분포가 작은 클래스 데이터와 그 데이터와 가장 가까운 무작위의 K개의 데이터 사이에 가상의 직선을 그려서 직선상에 존재하는 가상의 분포가 작은 클래스 데이터를 생성하는 것을 말합니다.

728x90

'Data Analysis > ML' 카테고리의 다른 글

[ML] 지도학습과 비지도학습  (0) 2022.11.08

댓글