일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 딥러닝
- 빅데이터
- 알고리즘
- 공부
- GE B650
- 데이터분석
- Undersampling
- 데이터
- 2D CNN
- nvidia
- 경진대회
- Data Imbalance
- CNN
- edge computing
- 데이터불균형
- 회귀분석
- Jetson
- 엣지컴퓨팅
- 머신러닝
- 회귀
- 의료데이터
- VitalRecorder
- 나이브베이즈
- 생체신호
- 1D CNN
- VitalDB
- NIA
- R
- MAE
- 정보화진흥원
- Today
- Total
Doyun-lab
[ML] Data Imbalance Problem (데이터 불균형 문제) 본문
최근 "ESRD 환자의 수술 후 합병증 예측" 프로젝트를 진행하면서 Data Imbalance(데이터 불균형) 문제에 직면했다. 데이터 불균형 문제는 생각보다 매우 흔하며, 앞으로도 프로젝트를 진행할 때 예측하고자 하는 Class가 적은 수를 갖고 있을 확률은 매우 높다.
예를 들어, 의료 데이터를 분석할 때 질병 여부를 분류한다면 당연히 질병인 Class가 훨씬 개수가 적을 것이다.
그렇다면, 질병에 대한 Class에 더 민감한 결과를 얻어야만 데이터 분석 및 모델이 쓸모있을 것이다. 그러나 실제 세상에서는 질병이 없는 사람이 대부분일 것이므로 "질병이 아니다"라는 쪽에 더 치우친 모델이 만들어진다면 쓸모가 없을 것이다.
그러므로, 해결해야 하는 문제와 데이터의 도메인을 고려하여 Data Imbalance 문제를 해결해야한다.
Data Imbalance 란 ?
Class 비율이 한쪽으로 치우친 Data set을 Imbalanced Data set이라고 한다. Data set에서 큰 비중을 차지하는 Class를 Majority classes라고 하며, 적은 비율을 차지하는 것을 Minority classes라고 한다.
불균형의 정도는 Minority classes의 비율에 따라 다르다.
이러한 Imbalanced Data set에서는 Classification 등을 실시할 때 특정 Sampling 기법을 적용해야할 수 있다.
Up-sampling과 Down-sampling
Imbalanced Data를 다루는 효과적인 방법에는 대표적으로 Up-sampling과 Down-sampling이 있다.
Up-sampling이란 적은 비율을 가진 Class에 대해 큰 비중을 차지하는 Class에 대한 동일한 가중치를 추가하는 것이다. 쉽게 말해서 100:1000의 비율을 가진 Imbalanced Data가 있다면 100개의 Class를 Sampling하여 1,000개로 늘린다.
하지만, 여기서 주의해야할 점은 Train/Test split을 진행할 때 Train set에 대해서만 Up-sampling을 진행해야 한다는 것이다. 모델이 Test를 진행할 때 임의로 Up-sampling된 Data로 Test를 진행할 경우 잘못된 결과를 얻을 수 있다.
Down-sampling이란 Up-sampling과 반대로 낮은 비중을 가진 Class에 대해 Training하는 것인데, 앞서 예로 들었던 100:1000의 비율을 가진 Imbalanced Data를 1,000개의 Class를 Sampling 하여 100개로 줄인다. 그 후, Down-sampling된 Class에 대해 가중치를 추가해준다. 이를 Upweight라고 한다.
각각의 방법에는 단점이 존재하는데, Up-sampling을 하게 되면 복제된 관측치를 원래 Data set에 추가하기만 하면 여려 유형의 관측치를 다수 추가하게 되어 오버피팅(overfitting)이 발생할 수 있다. Down-sampling을 하게 되면 Data에 대한 소실이 매우 크고 중요한 Majority classes data를 잃을 수 있다.
추후에 데이터 불균형 문제에 대해서 자세히 다뤄보도록 하겠다 !
'Study > Machine Learning' 카테고리의 다른 글
[ML] Data Imbalance (불균형 데이터 분석을 위한 방법들) (0) | 2021.06.25 |
---|---|
[ML] Perceptron (퍼셉트론) (0) | 2021.06.21 |
[ML] SVD / PCA / LDA (0) | 2021.06.21 |
[ML] Naive Bayes (나이브 베이즈) (0) | 2021.06.21 |
[ML] Decision Tree (의사결정 나무) (0) | 2021.06.21 |