더북(TheBook)
>>> from sklearn.utils import resample
>>> print('샘플링하기 전 클래스 1의 샘플 개수:',
...       X_imb[y_imb == 1].shape[0])
샘플링하기 전 클래스 1의 샘플 개수: 40
>>> X_upsampled, y_upsampled = resample(X_imb[y_imb==1],
...                                     y_imb[y_imb==1],
...                                     replace=True,
...                                     n_samples=X_imb[y_imb==0].shape[0],
...                                     random_state=123)
>>> print('샘플링한 후 클래스 1의 샘플 개수:',
...       X_upsampled.shape[0])
샘플링한 후 클래스 1의 샘플 개수: 357

샘플을 추출한 후 클래스 0인 원본 샘플과 업샘플링(upsampling)된 클래스 1을 연결하여 균형 잡힌 데이터셋을 얻을 수 있습니다.

>>> X_bal = np.vstack((X[y==0], X_upsampled))
>>> y_bal = np.hstack((y[y==0], y_upsampled))

그 결과 다수 클래스를 예측하는 규칙은 50% 정확도를 달성합니다.

>>> y_pred = np.zeros(y_bal.shape[0])
>>> np.mean(y_pred==y_bal) * 100
50.0
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.