데이터 불균형이 무언인지 알아보쟈
데이터 불균형이란?
- 데이터 세트 내의 클래스의 분포가 불균형한 것을 의미함
- 데이터 불균형이 있을 경우 비교적 많이 있는 데이터에 대해 overfitting이 일어날 수 있음
- 전체적인 모델 성능에 좋지 않은 영향을 미침
불균형 데이터 종류
- 정상 거래 vs 사기 거래(정상 거래 > 사기 거래)
- 기체 결함(정상 기체 > 문제 기체)
- 높은 클릭률(유튜브 동영상 클릭률)
- 희귀 질병 vs 질병(질병 > 희귀 질병)
불균형 데이터 해결
- 데이터 증식 - 모자란 데이터 수집 및 임의 생성(평행 이동, 대칭 이동, GAN 등을 이용)
- 샘플링 기법
- under sampling - 적은 수의 데이터를 기준으로 데이터 개수를 맞춤
- over sampling - 기존에 많았던 데이터를 기준으로 데이터 증식을 통해 모자란 데이터를 채워 넣어 기존 데이터를 다 사용함
- under sampling + over sampling 해도 됨
- weighted random sampling - 미니 배치를 기준으로 기존 데이터에서 밸런스하게 뽑아서 넣어줌, 예를 들어 미니배치 사이즈가 30일 경우, 각각의 데이터에서 10개씩 뽑아서 데이터를 만듦, 파이토치에서 기본적으로 제공해줌
- 가중 손실 함수 - Loss function에서 라벨이 많은 경우 가중치를 적게 줌
- 라벨별로 데이터가 10, 50, 40개 존재할 경우
- 가중치를 1/10, 1/50, 1/40을 줄 수도 있고
- 100/10, 100/50, 100/40을 줄 수도 있음
- 파이토치에서 기본으로 제공해주기 때문에 weight값만 정해주면 됨
- 평가 기준 정의
- accuracy : 전체 / 맞춘 수
- accuracy가 90% 일 때 좋은 모델이라고 할 수 있을까?
- 아니다. 불균형한 데이터에서 가장 많은 데이터를 잘 맞추는 것일 수 있음
- 각각 라벨마다 따로 봐줘야 함
- 여러 가지 평가 기준이 있으니 참고해서 진행해야 함
내용에 문제가 있으면 댓글로 알려주세요!
출처 : 인프런 - 실전 인공지능으로 이어지는 딥러닝 개념 잡기(딥러닝 호형)
'딥러닝 공부' 카테고리의 다른 글
인공 신경망의 성능 개선 - 전이 학습(Transfer Learning) (0) | 2021.09.28 |
---|---|
인공 신경망의 성능 개선 - 모델 튜닝(Model Tuning) (0) | 2021.09.28 |
인공 신경망의 성능 개선 - 과적합(Overfitting) (0) | 2021.09.28 |
오토인코더(Autoencoder) (1) | 2021.09.28 |
장단기 메모리와 게이트 순환 유닛(LSTM and GRU) (0) | 2021.09.28 |