코딩코딩
Scikit-learn Sampling 싸이킷런 샘플링
g0n1
2020. 7. 18. 17:55
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