클래스 불균형(Class Imbalanced)

위의 그림처럼 우리의 데이터에서 클래스가 불균형하게 분포되어 있을 때 나타납니다. 주로 특이한 경우(은행 거래 사기,희귀 질병, 기계 불량음 등)가 포함되어 있는 데이터에서 두드러집니다. 이러한 문제들을 비정상 탐지(Anomaly Detection)이라고 부릅니다. 우리가 학습시킬 모델은 균형이 잡힌 많고, 다양한 클래스를 보는 것을 좋아합니다.


과소표집(UnderSampling)과 과대표집(OverSampling)

과소표집은 다른 클래스에 비해 상대적으로 많이 나타나있는 클래스의 개수를 줄이는 것입니다. 이를 통해 균형을 유지할 수 있게 되지만, 제거하는 과정에서 유용한 정보가 버려지게 되는 것이 큰 단점입니다. 

과대표집은 데이터를 복제하는 것입니다. 무작위로 하는 경우도 있고, 기준을 미리 정해서 복제하는 방법도 있습니다. 정보를 잃지 않고, 훈련용 데이터에서 높은 성능을 보이지만 실험용 데이터에서의 성능은 낮아질 수 있습니다. 대부분의 과대표집 방법은 Overfitting의  문제를 포함하고 있습니다. 이를 피하기 위해 주로 SMOTE(Synthetic Minority Over-sampling Technique)를 사용합니다. 간단히 설명하자면, 데이터의 개수가 적은 클래스의 표본(Sample)을 가져온 뒤에 임의의 값을 추가하여 새로운 샘플을 만들어 데이터에 추가합니다. 이 과정에서 각 표본은 주변 데이터를 고려하기 때문에 과대적합의 가능성이 낮아지게 됩니다.

 실제 현업에서는 특정 클래스의 데이터의 개수가 적은 경우가 대부분입니다. 제품을 예로 들면, 한 제품이 정상 제품일 확률이 불량품일 확률보다 현저히 높기 때문에 불량품에 대한 데이터는 상대적으로 적을 것 입니다.