데이터 불균형이 무언인지 알아보쟈

데이터 불균형이란?

  • 데이터 세트 내의 클래스의 분포가 불균형한 것을 의미함
  • 데이터 불균형이 있을 경우 비교적 많이 있는 데이터에 대해 overfitting이 일어날 수 있음
  • 전체적인 모델 성능에 좋지 않은 영향을 미침

 

불균형 데이터 종류

  • 정상 거래 vs 사기 거래(정상 거래 > 사기 거래)
  • 기체 결함(정상 기체 > 문제 기체)
  • 높은 클릭률(유튜브 동영상 클릭률)
  • 희귀 질병 vs 질병(질병 > 희귀 질병)

 

불균형 데이터 해결

  1. 데이터 증식 - 모자란 데이터 수집 및 임의 생성(평행 이동, 대칭 이동, GAN 등을 이용)
  2. 샘플링 기법
    • under sampling - 적은 수의 데이터를 기준으로 데이터 개수를 맞춤
    • over sampling - 기존에 많았던 데이터를 기준으로 데이터 증식을 통해 모자란 데이터를 채워 넣어 기존 데이터를 다 사용함
    • under sampling + over sampling 해도 됨
    • weighted random sampling - 미니 배치를 기준으로 기존 데이터에서 밸런스하게 뽑아서 넣어줌, 예를 들어 미니배치 사이즈가 30일 경우, 각각의 데이터에서 10개씩 뽑아서 데이터를 만듦, 파이토치에서 기본적으로 제공해줌
  3. 가중 손실 함수 - Loss function에서 라벨이 많은 경우 가중치를 적게 줌
    • 라벨별로 데이터가 10, 50, 40개 존재할 경우
    • 가중치를 1/10, 1/50, 1/40을 줄 수도 있고
    • 100/10, 100/50, 100/40을 줄 수도 있음
    • 파이토치에서 기본으로 제공해주기 때문에 weight값만 정해주면 됨
  4. 평가 기준 정의
    • accuracy : 전체 / 맞춘 수
    • accuracy가 90% 일 때 좋은 모델이라고 할 수 있을까?
    • 아니다. 불균형한 데이터에서 가장 많은 데이터를 잘 맞추는 것일 수 있음
    • 각각 라벨마다 따로 봐줘야 함
    • 여러 가지 평가 기준이 있으니 참고해서 진행해야 함

 

 

 

내용에 문제가 있으면 댓글로 알려주세요!

 

출처 : 인프런 - 실전 인공지능으로 이어지는 딥러닝 개념 잡기(딥러닝 호형)

+ Recent posts