본문 바로가기
스터디/데이터사이언스

[Data Science] Data Preprocessing (2) - Data Cleaning

by 궁금한 준이 2023. 3. 28.
728x90
반응형

 

실제 세상의 데이터는 매우 더럽다. (dirty) 아래 여러 이유가 있다.

  • Incomplete
    • missing value가 종종 존재한다.
    • 예를 들어, 분석가는 고객의 주소가 중요하다고 생각하여 데이터를 조회했지만, 처음 DB를 구축한 사람은 그것이 중요하지 않다고 생각할 수 있기 때문이다.
  • Noisy
    • noise, error, outliers
    • salary = -10 과 같이 음수가 될 수 없는 attribute에 음수가 저장될 수 있다.
  • Inconsistent
    • 값 자체는 문제가 없지만, 다른 attribute와 비교했을 때 오류가 있는 경우
    • age=40인데, birthday=03/01/2020 인경우, age와 birthday는 문제없지만 현재 2023년과 비교했을 때 40세는 명백한 오류다.
    • 과거에는 평점을 1, 2, 3으로 했다가 어느순간 시스템이 바뀌어 A, B, C로 저장하고 있는 경우
  • Intentional
    • (미국 데이터) Alabama 주에서 태어난 정보의 경우, 사실은 Alabama가 시스템의 초기값일 수 있다. (첫번째 주이기 때문)
    • 생일이 1월 1일 인 경우, 높은 확률로 팝업 리스트의 첫번째 값을 저장했을 가능성이 있다.

 

Missing Data

많은 경우에 missing data가 발생한다.

장비가(센서 등) 잠시 고장났거나, 정보가 모이지 않거나, 수입의 경우 어린이에게는 해당되지 않거다 등 다양한 이유로 missing data는 생길 수 밖에 없다.

그리고 missing data는 함부로 추측해서는 안된다.

 

How to handle missing data?

  1. 해당 tuple을 무시한다. 그러나 많은 경우에 효과적이지 않다.
  2. 수동으로 값을 채운다. 그러나 노가다이다. (tedious, infeasible)
  3. 자동으로 값을 채운다.
    1. global constant 사용: "unknown", 또는 $\infty$로 저장
    2. attribute mean
    3. 같은 class에 해당하는 attribute mean
    4. Baysian formula나 decision tree 등의 inference-based를 이용 (e.g. 사람의 연봉은 직업과 나이로 어느정도 추측이 가능하다)

 

Noisy Data

Noise는 random error이거나 random variance이다.

  1. Binning
    1. 데이터를 정렬한 수, 적당히 partition을 나눈다.
    2. smothing by bin mean/median/boundary 등의 방법을 이용할 수 있다.
  2. Regression
    1. regression function을 구하여 데이터를 fit한다.
  3. Clustering
    1. outlier를 탐지하고 이를 제거할 수 있다.

3개의 data cluster가 있고, 이 cluster를 벗어나는 것을 outlier로 한다.

  1. Combined computer and human inspection
    1. 의심되는 값을 찾고, 이를 사람에게 검증한다. (관련 팀원 등)

 

Binning

데이터를 정렬하여 다음의 배열을 생각하자

\[ [4, 8, 15, 21, 21, 24, 25, 28, 34] \]

 

Partition into (equal-frequency) bins

9개의 데이터를 3개로 쪼개면 다음과 같다.

\[ [4, 8, 15], [21, 21, 24], [25, 28, 34] \]

 

Smoothing by bin means

각 파티션의 평균값으로 모든 값을 대체한다.

\[ [9, 9, 9], [22, 22, 22], [29, 29, 29] \]

 

Smoothing by bin boundaries

각 값들은 가장 가까운 경계 값으로 대체된다.

\[ [4, 4, 15], [21, 21, 24], [25, 25, 34] \]

 

 

Other Examples of Handling Noisy Data

Map matching

GPS의 좌표 데이터는 오차가 10-20m 정도 발생할 수 있다. 이때 자동차의 위치를 조절하는 방법으로는 가까운 road segment로 projection하여 자동차가 인도가 아닌 도로 위에 위치할 수 있도록 한다.

 

Clamp transformation

이상치를 제거하기 위해 특정 threshold를 정하여 lower보다 작으면 lower로, upper보다 작으면 upper로, 그 외의 경우 원래 값을 사용할 수 있다.

 

Imputation

Missing value를 채울 때 median으로도 채울 수 있다.

728x90
반응형