본문으로 건너뛰기
실습하기

데이터 불균형(Imbalanced Data)이란?

데이터 불균형은 특정 특징을 가진 데이터(라벨)가 다른 특징을 가진 데이터에 비해 훨씬 더 많거나 적은 상황을 의미합니다.

이렇게 특정 특징을 가진 데이터를 클래스라고 하는데, 이러한 클래스의 불균형은 모델의 성능을 크게 저하시킬 수 있습니다.

예를 들어, AI를 사용하여 이메일 스팸 필터를 만든다고 가정해 보겠습니다.

학습 데이터에는 10,000개의 이메일이 있습니다. 이 중 9,500개는 정상 이메일이고, 500개만이 스팸 이메일입니다.

만약 이 데이터를 그대로 사용해 AI 모델을 학습시키면, 모델은 대부분의 이메일이 정상이라고 예측할 가능성이 큽니다. 왜냐하면, 대다수의 학습 데이터가 정상 이메일이기 때문에, 데이터 불균형으로 모델이 소수 클래스인 스팸 이메일을 제대로 학습하지 못했기 때문입니다.


데이터 불균형 해결방법

1. 데이터 리샘플링

언더샘플링(Undersampling)

다수 클래스의 데이터를 줄여서 학습 데이터 셋의 균형을 맞추는 방법입니다. 하지만, 중요한 정보를 잃을 위험이 있습니다.

오버샘플링(Oversampling)

소수 클래스의 데이터를 복제하거나 생성해서 학습 데이터 셋의 균형을 맞추는 방법입니다.


2. 데이터 증강

새로운 소수 클래스 데이터를 생성하여 데이터의 다양성을 높입니다. 예를 들어, 이미지 데이터의 경우 회전, 확대, 축소 등의 방법을 사용해 새로운 데이터를 만들 수 있습니다.


3. 적절한 평가 지표 사용

데이터 불균형 문제에서는 단순 정확도(accuracy)보다는 정밀도(precision), 재현율(recall), F1 점수(F1 score) 같은 평가 지표를 사용하는 것이 더 적절합니다.

정밀도(Precision)

모델이 양성으로 예측한 데이터 중 실제 양성의 비율입니다. 즉, 사기 거래로 예측한 것 중 실제 사기 거래의 비율입니다.

재현율(Recall)

실제 양성 데이터 중 모델이 양성으로 예측한 비율입니다. 즉, 실제 사기 거래 중 모델이 사기 거래로 예측한 비율입니다.

F1 점수(F1 Score)

정밀도와 재현율의 조화 평균으로, 두 지표의 균형을 측정합니다.


4. 알고리즘 조정

불균형 데이터를 처리할 수 있는 알고리즘을 사용하거나, 모델 학습 시 가중치를 조정하여 소수 클래스의 중요성을 높이는 방법입니다.

클래스 가중치(Class Weights)

소수 클래스에 더 높은 가중치를 부여하여 모델이 이 클래스를 더 신경 쓰도록 합니다.

앙상블 기법(Ensemble Methods)

앙상블 기법은 여러 개의 모델을 결합하여 하나의 강력한 모델을 만드는 방법입니다. 각각의 모델이 약간 다른 예측을 하더라도, 이 예측들을 결합하면 더 정확하고 신뢰할 수 있는 결과를 얻을 수 있습니다.

다음 내용이 궁금하다면?

코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!