Data Preprocessing(1)
1. Data Preprocessing (데이터 전처리) 의 주요 작업
- Data Cleaning (데이터 정제)
- 결측치 채우기, 노이즈 조정, 이상치 식별 및 제거, 일관성 문제 해결.......
- Data Integration (데이터 통합)
- 다양한 데이터베이스, 데이터큐브, 파일 등을 하나로 통합
- Data reduction (데이터 축소)
- 차원 축소, 숫자 축소, 데이터 압축
- Data transformation (데이터 변환)
- 정규화.....
- Data Discretization (데이터 구분)
- 개념 계층 생성.......
2. Data Cleaning (데이터 정제)
- 현실의 데이터는 깨끗하지 못하고 많은 문제를 내포하고 있기 때문에 그대로 사용할 수 없음
- 현실의 데이터가 가지는 문제들
- Incomplete (불완전) : attribute 값이 부족하거나, 통합 데이터만 존재한다 ex) 직업 = " " (missing data)
- noisy (부정확, 노이즈 존재) : 여러 노이즈, 오류 값, 이상치가 존재한다 ex) 월급 = "-10" (error)
- inconsistent (비일관적) : 네이밍 관행이나 데이터 코드에서의 비일치성이 존재한다 ex) 나이 = "20" , 생년 ="1980"
- Intentional (고의적인 부정확) : 사용자가 의도적으로 입력한 부정확한 데이터가 존재한다, disguised missing data
2-1. Incomplete Data (결측치)
- 데이터는 항상 사용가능한 것이 아니며, 많은 tuple이 어떤 attribute에 대해 저장된 값이 없을 수 있다
- 데이터 결측의 원인
- 관측 장비의 오작동으로 기록되지 않거나 잘못 기록됨
- 다른 기록된 데이터와 일치하지 않아서 삭제됨
- 오해로 인해 기록되지 않음
- 데이터 입력 당시 중요하게 여겨지지 않아 비포함됨
- 결측된 데이터는 추론하여 채울 필요가 있음
2-2. 결측된 데이터의 처리 방법
- 해당 행 (tuple)을 무시하기 : 클래스 라벨이 없는 경우 일반적으로 사용, 결측값이 포함된 행을 제외
-> attribute 마다 결측값의 비율이 많이 다르다면 효과적이지 않음 (데이터의 손실)
- 결측치를 수작업으로 채우기 : 결측치가 많은 대량의 데이터 집합에서는 부적합함
- 글로벌 상수값을 이용해 채우기 : 모든 attribute의 결측값을 unknown, -∞ 등의 라벨로 대체
- 중심 경향 측정값을 이용해 채우기 : 해당 attribute의 평균, 중간값, 최빈값 등으로 대체
- 주어진 tuple과 동일한 class에 속하는 모든 sample의 평균이나 중위수를 이용해 채우기
- 가장 가능성이 높은 값으로 채우기 : decision tree (의사 결정 나무), Bayesian formula (베이지안 추론) 등 추론 기반 도구로 결측치의 대체값을 결정
3. Noisy Data (노이즈 데이터)
- 노이즈 : 측정 변수의 랜덤 오류나 분산
- 노이즈 데이터의 원인
- 데이터 수집 도구의 결함
- 데이터 입력 시의 문제
- 데이터 전송에서의 문제
- 기술적인 한계
- 네이밍 관행의 비일관성 ex) ranking = "A,B,C" or "1,2,3"
3-2. 노이즈 데이터의 처리 (smoothing) 방법
- Binning (비닝) : 데이터 값들을 먼저 정렬한 뒤 여러개의 빈(bin)으로 분할. 노이즈는 빈의 평균값, 중간값 등으로 대체
- Regression (회귀 분석) : 데이터를 회귀 식에 맞는 값으로 대체
- Clustering (클러스터링) : 데이터 값들을 클러스터링 (군집화)하여 이상치를 탐지하고 제거
- 컴퓨터 조사, 인력 조사 : 의심되는 값을 감지하여 사람이 직접 이를 확인
4. 프로세스로서의 데이터 정제
4-1. Data discrepancy detection (데이터 불일치 감지)
- 메타데이터 (데이터에 대한 데이터) 사용 ex) 도메인, 범위, 상호 종속 관계, 분포
- 특정 룰을 조사 ex) uniqueness rule (특정 룰), consecutive rule (연속 룰), null rule (널 룰)
- 모순 감지 툴 사용
- Data scrubbing : 간단한 도메인 지식을 이용하여 데이터의 오류 감지 및 수정
ex) 우편번호, 맞춤법 체크....
- Data auditing : 룰과 관계를 분석하고 이를 위반하는 데이터를 감지
ex) 상관관계를 발견하기 위해 통계 분석 이용, 이상치 발견을 위해 클러스터링 이용
4-2. Data migration (데이터 이동) 과 Data integration (데이터 통합)
- 데이터 이동 툴 사용 : 데이터 이동 시에 특정한 데이터 변환이 가능
- ETL (Extraction/Transformation/Loading) 툴 사용 : GUI를 통해 특정한 데이터 변환이 가능
5. 데이터 통합 (Data Integration) : 다양한 데이터 저장소의 데이터를 한 곳으로 통합
- 다양한 데이터 소스들의 스키마를 통합하는 것이 필요 ex) A.customerId == B.cust-ID
- Entity Identification problem (엔티티 확인 문제) : 다양한 데이터 소스에서 수집한 실제 현실의 엔티티를 매칭하는 것은 어려운 문제임
- 데이터 값 사이의 충돌을 감지하고 해결하는 과정이 필요
- 실제 현실의 같은 엔티티에 대한 것인데도, 이를 나타내는 attribute의 값이 데이터 소스마다 다를때
- 이는 데이터 소스마다 표현 방식, 단위 등의 차이로 인해 나타날 수 있음
6. 데이터 통합시의 Data redundancy (데이터 중복) 처리
- 여러 데이터베이스를 통합하는 과정에서 데이터 중복이 자주 발생함
- Object Identification : 같은 attribute나 object가 다른 데이터베이스의 다른 이름으로 포함되어있음
- Derivable Data : 어떤 attribute는 다른 table의 attribute로 부터 얻어질 수 있음
ex) 연간 수익 <- 연간 매출 - 연간 지출 / 나이 <- 생년월일
6-1. Nominal data의 Correlation Analysis (상관 분석) : χ2 test (카이 제곱 검정)
- 두 attribute A, B에 대해 A가 m개의 개별값 (a1, a2, ... , am)을 가지고, B가 n개의 개별값 (b1, b2, ... , bn)을 가질 수 있을 때 A가 ai의 값을, B가 bj의 값을 가지는 결합사건 (Ai, Bj) 는 m x n의 행렬로 나타난다
- Observed value는 결합사건 (Ai, Bj) 실제 빈도수, Expected value는 예측 빈도수이다
- Expected value = (Ai의 값을 가지는 tuple의 수) * (Bj의 값을 가지는 tuple의 수) / 전체 tuple의 수
- χ2의 값이 높을 수록, 두 변수가 연관 되어있을 가능성이 더 높다
- 상관관계가 반드시 인과관계를 암시하지는 않는다.
6-2. Numeric Data의 Correlation Analysis : Correlation coefficient (상관계수, Pearson Product)
- 두 attribute A와 B가 있고, n개의 tuple 중 tuple i에서 A와 B의 값이 ai, bi 이다
- A̅와 B̅는 각각 A와 B의 평균이며, σA와 σB는 각각 A와 B의 표준편차이다.
- 이 값은 [-1, 1]의 범위를 가진다
- 값이 0보다 크다면, 두 attribute는 양의 상관관계를 가진다. (A값이 커지면 B값도 커진다)
- 값이 0이라면 두 attribute 간의 상관관계는 없다, 두 attribute는 서로 독립이다
- 값이 0보다 작다면, 두 attribute는 음의 상관관계를 가진다. (A값이 커지면, B값은 작아진다)