📌 데이터마이닝/데이터 전처리

🚩 데이터마이닝 07. Data Cleaning

nyamin9 2023. 2. 11. 11:10

모바일은 화면을 돌려 가로화면으로 보시는 게 읽으시기 편할 수 있습니다. 돌려서 보시는 걸 추천드릴게요!!

 

 


 

🧩 이번 포스팅부터는 Data Preprocessing, 즉 데이터 전처리에 대해서 다룰 생각입니다. 어쩌면 정확한 데이터 분석이나 마이닝을 위해서 가장 중요한 부분이라고도 할 수 있기 때문에, 자세히 알아보도록 하겠습니다.

 

 

🧩 Data Preprocessing은 아래와 같은 방법들로 구성됩니다.

 

  ▪ Data Cleaning

 

  ▪ Data Integration

 

  ▪ Data Reduction / Transformation

 

  ▪ Dimensinality Reduction

 

 

👉 전처리는 데이터의 상황에 맞는 여러가지 measure들을 가지고 있습니다. 

 

🧩 이번 포스팅에서는 첫번째 방법인 Data Cleaning을 알아보겠습니다.

 

 


🚩 1. Data Cleaning 소개

 

저희가 가지고 있는 데이터는 대부분 불필요한 부분을 가지고 있거나, 정확하지 않은 부분을 가지고 있는 데이터일 가능성이 높습니다.

 

이런 부분들을 만드는 원인은 여러가지가 있는데, 이 중에서 대표적인 몇가지를 가져왔습니다.

 

 

  ▪ Incomplete : 데이터들 사이에 missing value 존재

 

  ▪ Noisy: 데이터 중간에 섞여있는 noise, errors, outliers

 

  ▪ Inconsistent : 두 feature의 불일치 - ex) age = 56, birth = 2020

 

  ▪ Intentional : 잘못된 일반화 - ex) 1월 1일은 모든 사람들의 생일이다.

 

 

이를 적절히 처리해 깨끗한 데이터를 만들어줘야 합니다. 흔히 발생하는 Missing 과 Noisy 데이터를 살펴보겠습니다.

 

 

 


🚩 2. Incomplete (Missing) Data

 

 몇몇 attribute에서 value가 없는 데이터를 의미합니다.

 

 이러한 missing value가 나타나는 원인은 다음과 같습니다.

 

  - 측정 장비의 오작동

 

  - 기록된 다른 자료와의 불일치에 의한 삭제

 

  - 오해로 인한 데이터 미입력

 

  - 초기 입력 시 특정 데이터가 불필요하다고 생각되는 경우

 

 

 

▪ 이러한 데이터들은 빈 자리에 임의의 값을 넣어 처리할 수 있습니다. 채워넣는 값들은 다음과 같은 기준으로 정해집니다.

 

 

 

📝 처리 방법

 

  - 해당 튜플(object) 무시 : 일반적인 class의 label이 존재하지 않는 튜플인 경우 무시합니다.

 

  - 빈 value를 수동으로 일일이 입력 : 하지만 작업량이 너무 많고, 사실상 불가능합니다.

 

  -  빈 value에 자동으로 입력 

 

    ▪  global constanct : 임의의 숫자 / 문자 입력 ex) 1, 0, 'NaN'...

 

    ▪  attribute mean  : attribute의 평균 입력

 

    ▪  attribute mean - same class  : 같은 class를 가진 object의 평균 입력

 

    ▪  Bayesian formula or Decision Tree  : inference 기반 - prediction 입력

 

 

 


🚩 3. Noisy Data

 

 

▪ 데이터에서 Noise는 다음과 같이 정의됩니다.

 

  - 측정된 변수의 random error / variance

 

  - Duplicated records(중복기록)

 

  - Incomplete / Inconsistent

 

 

 

📝 처리방법

 

 Binning  : 정렬되어 있는 데이터에 대해 같은 사이즈의 bins로 나눔(equal-frequency)

 

  - smooth by bin means / median / boundaries

 

 Regression  : 가지고 있는 데이터를 바탕으로 noise를 fitting해서 noise 보정

 

  - smooth by fitting the data into regression functions

 

 Clustering  : outlier 발견 및 제거

 

 Semi-Supervised  : 컴퓨터와 사람의 noise 발견 / 처리

 

 

 

각 처리 방법은 앞으로 좀 더 자세히 다룰 것이기 때문에 여기서는 간단히 개념만 짚어보았습니다🙂.

 

 

 


🚩 4. Data Cleaning Process

 

 

1.  Data Discrepancy Detection  : 데이터 불일치 발견

 

  ▪ Using Metadata : 데이터에 대한 정보

 

    - 데이터의 소속 domain, 데이터 범위, 데이터의 distribution

 

  ▪ Checking Uniqueness Rule : 데이터가 유일한가

 

    - ex) 주민등록번호

 

  ▪ Consecutive Rule : 데이터가 연속적인가. 어색하지 않은가.

 

  ▪ Null Rule : 데이터에 null 값이 존재하는가.

 

  ▪ Data Scrubbing : 도메인에 대한 기본 지식을 바탕으로 오류검출 / 수정

 

  ▪ Data Auditing : 데이터를 분석하여 규칙을 검출하고 오류를 검출 -> Clustering

 

 

 

2.  Data Migration & Integration  : 데이터 이동 / 통합

 

  ▪ Data Migration Tools : 변환할 attribute 지정

 

    - ex) sex  gender

 

  ▪ ETL tools : Extraction / Transformation / Loading

 

  ▪ 사용자 인터페이스(UI)를 통한 데이터 변환 지정

 

 

 

3.  Integration of the two Process  : 불일치 검출 / 변환

 

  ▪ 반복적이고 상호적인 단계를 통해 두 데이터 간의 Integration 진행

 

 


🧩 이렇게 데이터 전처리의 첫 번째 단계인 Data Cleaning에 대해서 알아보았습니다. 간단하게 개념만을 다루었고 특정 예시를 들지 않았기에 이번 포스팅만 보고 바로 이해하시는 것은 어렵다고 생각하지만, 그냥 이런 것들이 있구나~~ 정도만 알면 좋을 것 같습니다. 이번에 대략적으로 다룬 개념들을 앞으로 더 세부적으로 다룰테니, 천천히 배워봅시다😊. 다음 포스팅부터는 Data Integration을 알아보겠습니다🏃‍♂️🏃‍♂️.

 


💡위 포스팅은 한국외국어대학교 바이오메디컬공학부 고윤희 교수님의 [생명정보학을 위한 데이터마이닝] 강의를 바탕으로 합니다.