데이터셋의 클래스 비율이 불균형할 경우, 다수 클래스 쪽으로 편향되기 쉬워짐
소수 클래스에서의 예측 오류에 패널티를 부여하는 방법
class_weight=balanced
로 설정하여 조정소수 클래스의 샘플을 늘리거나, 다수 클래스 샘플을 줄이거나, 훈련 샘플을 인공적으로 생성
resample 함수를 통해 클래스 불균형 해소
X_imb = np.vstack((X[y == 0], X[y == 1][:40]))
y_imb = np.hstack((y[y == 0], y[y == 1][:40]))
from sklearn.utils import resample
print('샘플링하기 전 클래스 1의 샘플 개수:', X_imb[y_imb == 1].shape[0])
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=1)
print('샘플링하기 후 클래스 1의 샘플 개수:', X_upsampled.shape[0])
X_bal = np.vstack((X[y == 0], X_upsampled))
y_bal = np.hstack((y[y == 0], y_upsampled))