반응형
○ 언더 샘플링과 오버 샘플링
레이블( 결정 값 )이 불균형한 분포를 가진 데이터 세트를 학습시킬 때 예측 성능의 문제가 발생할 수 있다. 이는 이상 레이블을 가지는 데이터 건수가 정상 레이블을 가진 데이터 건수에 비해 너무 적기 때문에 발생한다.
● 언더 샘플링
많은 데이터 세트를 적은 데이터 세트 수준으로 감소 시키는 방식이다.
즉 정상 레이블을 가진 데이터가 10,000건, 이상 레이블을 가진 데이터가 100건이 있으면 정상 레이블 데이터를 100건으로 줄이는 것을 의미한다.
● 오버 샘플링
이상 데이터와 같이 적은 데이터 세트를 증식하여 학습을 위한 충분한 데이터를 확보하는 방법이다.
동일한 데이터를 단순히 증식하는 방법은 과적합이 되기 때문에 의미가 없으므로, 원본 데이터의 피처 값들을 아주 약간만 변경하여 증식하는 SMOTE 방법을 사용한다.
SMOTE는 적은 데이터 세트에 있는 개별 데이터들의 K 최근접 이웃을 찾아서 이 데이터와 K개 이웃들의 차이를 일정 값으로 만들어서 기존 데이터와 약간 차이가 나는 새로운 데이터를 생성하는 방법이다.
from imblearn.over_sampling import SMOTE
smote = SMOTE(random_state=0)
x_train_over, y_train_over = smote.fit_sample(x_train, y_train)
SMOTE 객체는 fit_sample() 함수를 이용해 데이터를 증식시킨다.
반응형
'AI > Machine Learning' 카테고리의 다른 글
[ML] 머신러닝 - 회귀, 다항회귀, MSE, RMSE (0) | 2022.04.16 |
---|---|
[ML] 머신러닝 - 스태킹 앙상블 (0) | 2022.04.09 |
[ML] 머신러닝 - 부스팅 GBM, XGBoost, LightGBM (0) | 2022.04.09 |
[ML] 머신러닝 - 앙상블 ( 보팅, 배깅 ) (0) | 2022.04.06 |
[ML] 머신러닝 결정트리 (DecisionTreeClassifier, DecisionTreeRegressor) (0) | 2022.04.06 |