일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 데이터가공
- 데이터분석
- row추가
- 데이터
- categorical
- 리텐션
- INSERTINTO
- 그룹
- SQL
- 그로스마케터
- 전처리
- 데이터분석가
- 코테
- sql로데이터
- 이전행
- WAU
- 특정컬럼
- onehot
- data
- DAU
- ABTest
- warehouser
- Python
- 통계
- pvalue
- dataanalyst
- dataanalysis
- GTM
- 표본
- engagement
- Today
- Total
Meiren
[ML/전처리] Imbalanced Data Sampling 본문
클래스 불균형을 해결하기 위한 다양한 샘플링 기법
under sampling
- 다수의 클래스 데이터 제거하여 > 처리 속도 증대
- 클래스 오버랩 감소
- 데이터 제거로 인한 정보 손실
over sampling
- 소수의 클래스 데이터 수를 증대시켜 불균형 해소\
- 데이터 중복 생성인해 -> overfitting 문제가 있음
- 데이터 증대에 따른 학습 시간 증대의 단점
RandomOverSampling
- 소수 클래스 샘플을 랜덤하게 선택 > 그 수를 늘림
- 데이터가 단순히 복제됨
- 따라서 데이터의 값이 변하지 않고 수가 늘어 > 가중치가 높아짐
- 과적합 문제 야기
- 연속형 변수만 가능
SMOTE
- oversampling
- 소수 클래스에서 knn을 활용해 가상의 데이터 생성
- 각 샘플의 KNN을 찾음 > 그 이웃들 사이에 선을 그어 > 무작위 점 생성
- ADSYN과 달리, 생성된 데이터를 무조선 소수 클래스라 칭하지 않고 분류모형에 따라 분류함
- 연속형에서만 사용 가능
ADASYN
- oversampling
- smote의 개선된 버전, 동일 프로세스 knn 사용됨
- knn > 임의의 작은 값을 더해줌 (차이점)
- ADSYN과 달리, 생성된 데이터를 무조선 소수 클래스라 칭함
- 샘플링하는 개수를 위치에 다라 다르게 하는 방법
SMOTENC
- smote처럼 k근접 이웃을 활용해 가상 데이터 샘플 생성, 오버샘플링
- 범수 & 연속형 변수가 혼합된 경우에만 작동
SMOTEENN
- SMOTE + ENN
ENN(dited Nearest Neighbours)
- 가까운 k개 중 소수 클래스를 지닌 데이터들을 모두 제거하여, 소스클래스와 다수 클래스간의 구분을 명확히 함
- 경계선이 있는 데이터 중 다수클래스를 삭제시킴
- knn은 데이터간 모든 거리를 구하기 떄문에 > 데이터 갯수가 많으면 사용이 어려움
'머신러닝(machine learning)' 카테고리의 다른 글
[ML/preprocessing] Data Scaling (데이터 스케일링) (1) | 2022.11.29 |
---|---|
[ML/Evaluation] Confusion Matrix (모델 성능 평가 지표, 오차행렬) (0) | 2022.11.29 |
[ML] LogisticRegression(로지스틱 회귀) (1) | 2022.11.29 |
[ML/전처리] Data Sampling (2) | 2022.11.29 |
[ML/전처리] encoding - label vs onehot (0) | 2022.11.29 |