728x90
Class 속성이 매우 불균형한 분포를 가지고 있는 경우 사용합니다.
이상 레이블을 가지는 데이터 건수가 정상 레이블을 가진 데이터 건수에 비해 너무 적기 때문에 데이터 세트를 학습 시킬 때 예측 성능의 문제가 발생할 수 있습니다.
정상 레이블을 가지는 데이터 건수가 매우 많기 때문에 일방적으로 정상 레이블로 치우친 학습으로 이상 데이터 검출이 어려워지는 문제가 있습니다.
Oversampling(오버 샘플링)과 Undersampling(언더 샘플링) 방법은 지도 학습에서 극도로 불균형한 레이블 값 분포로 인한 문제점을 해결합니다.
Undersampling : 많은 레이블을 가진 데이터 세트를 적은 레이블을 가진 데이터 세트 수준으로 감소시키는 방식
Oversampling : 적은 레이블을 가진 데이터 세트를 많은 레이블을 가진 데이터 세트 수준으로 증식시키는 방식
● SMOTE
대표적인 오버 샘플링 방식입니다.
적은 데이터 세트에 있는 개별 데이터들의 KNN을 찾아서 특정 샘플 데이터와 가장 가까운 K개 이웃들의 차이를 일정 값으로 만들어서 기존 데이터와 약간 차이가 나는 새로운 데이터들을 생성하는 방식
from imblearn.over_sampling import SMOTE
smote = SMOTE(random_state = 0)
X_train_over, y_train_over = smote.fit_resample(X_train, y_train)
print('SMOTE 적용 후 레이블 값 분포: \n', pd.Series(y_train_over).value_counts())
728x90
'Data Analytics with python > [Theory]' 카테고리의 다른 글
[Machine Learning][Classification] Classifier Algorithms (0) | 2023.02.16 |
---|---|
[Machine Learning][Classification] Ensemble Learning (0) | 2023.02.15 |
[Machine Learning] K-Menas_2 (0) | 2023.02.14 |
[Machine Learning] 실루엣 분석 (0) | 2023.02.14 |
[Machine Learning] K-means_1 (0) | 2023.02.14 |
댓글