본문 바로가기

R Site & 자료

Imbalance Data를 다루는 7가지 방법


1. 측정 Metric의 올바른 선택

2. 훈련 데이터의 Resampling

   1) Under Sampling

   - rare case를 고정하고 나머지 풍부한 데이터를 rare case 숫자만큼 뽑는 법

   2) Over Sampling

   - 풍부한 비rare case를 제거하는 대신 rare case를 더 많이 재생산함

   - 재생산 방법은 1) repetition, 2) bootstrapping 3) SMOTE


Note: 1), 2)번을 혼합해서 사용키도 합.


3. k-folds cv를 적절히 사용하기

  - over sampling과 같이 boostrap을 통해 rare case를 재생산 후 cv를 한다면 가상의 boostrap sample에 대한 과적합을 하는 것과 같음

 - 따라서 cv를 먼저 한 후 bootstrap을 통해 oversampling 해야 함


4. 층화 추출 + 앙상블

  - 예를 들어 rare case 1개 비rare case 10개로 구성한 set를 여러개 만들어 앙상블 후 test값에 비교함

  - test값을 가장 잘 설명하는 앙상블 weight를 구하면 됨.  

  - 층화 추출은 전체 데이터 비율만큼 함.


5. 다른 비율의 앙상블

  - 4번과 같은 방법인데 상기 4번은 같은 비율 (위에선 1:10)의 여러 set를 만들었다면 이번엔 다른 비율의 여러 set를 만든다. 예를 들어 set 1은 1:1, set 2는 1:2 set 3은 1:3 ....

 - 이렇게 하면 앙상블할 경우 상기 4번과 다른 weight가 구해짐


6. 군집

 - 군집을 하여 예를 들어 (r개의 군집)을 하여 각 군집에서 하나씩 추출

 - 이 경우, 각 군집의 medoids(중앙값)은 추출하지 않음

 - 이렇게 추출한 r개의 Set를 train함


7.  비 rare case 오류시 penalty 부여

 - rare case 오류보다 비 rare case오류일 경우 penalty를 부여함 


Source: http://www.kdnuggets.com/2017/06/7-techniques-handle-imbalanced-data.html

'R Site & 자료' 카테고리의 다른 글

단일변수(univariate)의 이상값 측정  (0) 2017.06.11
회귀분석 관련 각종 Site 모음  (0) 2017.02.14