본문 바로가기
코딩코딩

Scikit-learn Sampling 싸이킷런 샘플링

by g0n1 2020. 7. 18.
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

댓글