클래스 균형 조정
이진 분류 문제에서는 두 클래스 중 하나에 대해 더 많은 데이터가 수집될 수 있습니다. 클래스 간의 이러한 불균형으로 인해 모델은 소수 클래스보다 다수 클래스에 대해 더 많이 학습하게 합니다. 클래스 균형 조정을 사용하여 모델을 개선할 수 있습니다.
클래스 균형란?
이진 분류를 위한 데이터 집합에는 두 개의 클래스가 있습니다. 클래스 균형은 해당 클래스의 상대적 빈도입니다.
완벽하게 임의의 동전을 충분히 여러 번 던지면 완벽하게 균형 있는 두 클래스(앞면과 뒷면) 집합을 얻게 됩니다. 평균 클래스 값은 완벽하게 균형 있는 경우(한 클래스는 1이고 다른 클래스는 0임)에서 0.5입니다.
많은 경우에 클래스 균형은 동일하지 않습니다. 이로 인해 모델이 소수 클래스보다 다수 클래스에 대해 더 많이 학습할 수 있습니다.
비례 편향
모델은 불균형 데이터의 대다수 클래스를 추측하여 매우 정확할 수 있습니다. 예를 들어, 웹사이트 방문자의 95%가 구매하지 않는 경우 아무도 구매하지 않을 것이라고 말하는 모델은 95% 정확할 수 있습니다. 모델은 다수 클래스에 대해 학습하지만 종종 소수 클래스에 대해 학습하는 것이 더 중요합니다. 예를 들어, 웹사이트 방문자의 나머지 5%가 구매하는 이유는 무엇입니까?
클래스 균형 조정 효과
데이터에 대해 클래스 균형 조정을 수행하면 더 기능에 중점을 두고 소수 클래스에 대해 더 많이 학습한 모델을 가져올 수 있습니다. 모델에 대한 잠재적 영향은 다음과 같습니다.
-
소수 클래스의 비중이 높아졌으므로 F1 점수가 높아집니다.
-
비례 편향에 크게 의존하지 않으므로 전체 정확도 점수가 약간 낮아집니다.
-
기능과 클래스를 분리된 것으로 구별하는 방법에 더 의존하므로 더 많은 정보를 제공하는 모델입니다. SHAP 값은 클래스 균형이 조정된 모델에서 더 많은 정보를 제공할 수 있습니다.
작은 데이터 집합에서 클래스 균형 조정으로 인해 기능 데이터가 손실될 수 있습니다. 또한 데이터 집합의 비율을 변경하면 일부 정보가 손실되어 모델 예측이 편향될 수 있습니다.
클래스 균형 조정 방법
데이터의 클래스 균형을 맞추려면 먼저 특정 비즈니스 사례에 이상적인 균형이 무엇인지 찾아야 합니다. 80/20에서 50/50까지 어디에서나 필요할 수 있습니다. 클래스 균형을 과도하게 조정하면 모델이 과적합될 수 있으므로 필요한 만큼만 균형을 조정하십시오. 그런 다음 수동 홀드아웃으로 모델을 테스트합니다.
클래스 균형 조정을 위한 가장 일반적인 방법은 언더샘플링입니다. 이는 다수 클래스를 임의로 샘플링하여 수행되며, 이를 통해 소수 클래스와의 균형이 이루어집니다. 그림은 균형 조정된 클래스가 있는 데이터 집합을 가져오기 위해 원본 데이터 집합의 다수 클래스에서 샘플을 가져오는 방법을 보여 줍니다.