ACAIT

[BDA 데분기] 3주차 - 결측치, 누락값, 이상치 처리 방법 본문

학회 활동/BDA 7기(데이터 분석 기초반)

[BDA 데분기] 3주차 - 결측치, 누락값, 이상치 처리 방법

831x99 2024. 1. 8. 22:42

1. 결측치 & 누락값 & 이상치에 대하여

1-1. 분석에서 결측치와 누락값은 중요한 내용

  • 결측치(Na): 결측치일 수도 있고 정말 값이 'Na'일 수도 있다.
  • 누락값(NaN): 휴먼 에러로 인한 누락값. 어떤 이유로 누락?
  • 두 개의 공통점: 값이 없다.

1-2. 결측치와 누락값은 왜 처리?

  • 분석에 방해. but, Na값이 정말 값이면 인사이트가 될 수도 있다.
  • Na 결측치, 누락값이라 생각한다면 -> 방해가 된다는 것은 머신에게 학습시키기 위해
  • Na 값을 머신에게 학습시키기 위해 처리.

1-3. Na값이 왜 중요?

  • x값이 누락값의 실제 값과 가장 유사히 대입하면 실제값과 예측값이 가장 같아짐.
  • 결측치가 정말 중요하고, 단순히 접근할 범위가 아님.
  • 결측치를 실제값과 유사하지 않게 적으면 결국 차이 발생, 모델 성능에도 영향.

1-4. 결측치 처리 방법은?

  1. 간단한 방법: 날린다
  • 결측치를 날리는 기준은? 전체 비중의 1% 미만이면 날림. 절대값에 따라 달라질 수 있음.
  1. 결측치가 상당한 비중을 차지하는 경우(전체 데이터셋 컬럼에서 30~40%)
  • 결측치를 무슨 기준으로 처리?
  • 다 날리면 머신 학습 데이터양 줄어듬.
  • 성능에 영향 미칠 수 있음.
  • 결측치를 최대한 채워서 메우는 형식을 생각해야 함.
  1. 너무 다 결측치면? 다 날려도 상관없다.
  • 80~90% 결측치 컬럼이면 비즈니스적인 이해관계 보고 도메인 지식 이용해서 날리기.
  • 결측치 채울 수 없다면?

1-5. 결측치 많은 컬럼에서 단순 접근(평균 등)으로 결측치 대체?

  • 기온 데이터는 날씨가 계절 영향을 받는데 단순 평균으로만 하면 문제가 크다.

1-6. 결론

  • 결측치는 단순히 생각할 것이 아니다.
  • 다양히 고민하고 통계적으로 다방면 고민해야 한다.

 

2. 결측치 나타내는 용어

  1. 완전 무작위 결측치 MCAR(Missing Completely at Random)
  • 완전 무작위 -> 어떤 인간의 편향이나 기계 결함이 아니라 완전 무작위 랜덤.
  1. 무작위 결측 MAR(Missing at Random)
  • 어떤 상황으로 인해서 발생하는 경우, 기업 제조과정에서 A제조공정 B제조공정 중 A가 갑자기 문제 발생해서 A공정에만 문제가 발생한 결측치.
  1. 비무작위 결측 NMAR(Missing at Not Random)
  • 결측값인데 정말 na가 하나의 특성이 될 수 있다.
  • 서베이 -> 소득에 대한 서베이 하면 자신의 소득 공개 꺼림. 값을 na로 처리.

2-1. 결측치 처리 방법

  • 결측치 날리고 제외하고 진행
  • 평균, 중위값, 등등 어떤 특정 통계 값으로 대체
  • 보간법(interpolation)
  • 대부분 보간법을 많이 배울 예정
  • 선형보간법, Spline 보간법, time 시간 보간법 등등

 

 

2-2. 결측치 대체 방법

  • 샘플 데이터 뽑아서 확인해 보기.

 

2-3. 누락값 대체 방법

  • ffill: 누락값이 바로 이전 값으로 변환됨.
  • bfill: 누락값이 바로 이후 값으로 변환됨.

 

2-4. 보간법

  • 아래 중 하나의 method 사용해야 함.
  • 보간법은 결측치를 최대한 최근 경향에 맞추는 것.

['linear', 'time', 'index', 'values', 'nearest', 'zero', 'slinear', 'quadratic', 'cubic', 'barycentric', 'krogh', 'spline', 'polynomial', 'from_derivatives', 'piecewise_polynomial', 'pchip', 'akima', 'cubicspline']