728x90
랜덤 샘플링의 종류
- 적은 클래스의 데이터 수를 증가시키는 Oversampling
- 많은 클래스의 데이터 수를 감소시키는 Undersampling
# 클래스 불균형 처리를 해주는 imbalanced-learn를 호출
from imblearn.over_sampling import RandomOverSampler
from imblearn.under_sampling import RandomUnderSampler
# ros, rus 객체
ros = RandomOverSampler()
rus = RandomUnderSampler()
ㅇㄹ
# 데이터에서 특징을 학습함과 동시에 데이터를 샘플링한다.
# Over 샘플링
oversampled_data, oversampled_label = ros.fit_resample(data, label)
oversampled_data = pd.DataFrame(oversampled_data, columns=data.columns)
# Under 샘플링
undersampled_data, undersampled_label = rus.fit_resample(data, label)
undersampled_data = pd.DataFrame(undersampled_data, columns=data.columns)
SMOTE(Synthetic Minority Oversampling Technique) 샘플링
- 점 하나와 그 점과 가까운 다른 점 사이에 점을 찍어줌
from imblearn.Over_Sampling import SMOTE
smote = SMOTE(k_neighbors)
smoted_data, smoted_label = smote.fit_resample(data, label)
728x90
'코딩코딩' 카테고리의 다른 글
ADsP 27회 주관식 정답 (0) | 2020.11.22 |
---|---|
구글 코리아 머신러닝 부트캠프 소개 Google Korea ML Boot Camp (5) | 2020.09.16 |
Label Encoding, One-Hot Encoding / Scikit-learn 레이블 인코딩, 원핫인코딩 (0) | 2020.07.19 |
싸이킷런 스케일링, Scikit-learn Scailing (0) | 2020.07.18 |
다양한 무료 공부소스들 (데이터 사이언스, 통계, 인공지능...) (0) | 2020.07.18 |
댓글