이 코드에서 357개의 양성 종양 샘플 전체와 40개의 악성 종양 샘플을 연결하여 불균형이 심한 데이터셋을 만들었습니다. 무조건 다수 클래스(양성 종양의 클래스 0)를 예측하는 모델은 거의 90%의 정확도를 달성할 것입니다.
>>> y_pred = np.zeros(y_imb.shape[0])
>>> np.mean(y_pred==y_imb) * 100
89.92443324937027
이런 데이터셋에 분류 모델을 훈련할 때 모델을 비교하기 위해 정확도를 사용하는 것보다 다른 지표를 활용하는 것이 낫습니다. 애플리케이션에서 주요 관심 대상이 무엇인지에 따라 정밀도, 재현율, ROC 곡선 등을 사용할 수 있습니다. 예를 들어 추가적인 검사가 필요한 악성 종양 환자의 대부분을 구별하는 것이 가장 중요할 수 있습니다. 여기에서는 재현율 지표를 선택해야 합니다. 스팸 필터의 경우 햄 이메일이 너무 자주 스팸으로 처리되는 것을 원하지 않습니다. 여기에서는 정밀도가 더 적절한 지표입니다.
머신 러닝 모델을 평가하는 것과 별개로 클래스 불균형은 모델이 훈련되는 동안 학습 알고리즘 자체에 영향을 미칩니다. 머신 러닝 알고리즘이 일반적으로 훈련하는 동안 처리한 샘플에서 계산한 보상 또는 손실 함수의 합을 최적화합니다. 결정 규칙은 다수 클래스 쪽으로 편향되기 쉽습니다.