본문 바로가기
  • Let's go grab a data
Data/DataMining

[데이터 전처리] 결측치, 이상치, 잡음 처리, 데이터 변환

by pub-lican-ai 2016. 3. 30.
반응형

[데이터 전처리] 결측치, 이상치, 잡음 처리, 데이터 통합, 데이터 변환 #missing value #outlier #noise


결측치 채워넣기 Missing Value Imputation

1) 중심 경향 값 넣기 (평균, 중앙값, 최빈값 등) - 분산이 줄어들고, 소수의 평균이 전체를 대표하는 경우가 생김, 극단값에의해 평균이 영향 받음, Mid-minimum spacing: 양측 5%제거하고 평균 예) 피겨스케이팅 점수 계산

2) 랜덤 추출(분포 기반) - 랜덤에의해 자주 나타나는 값이 채워짐

3) Regression Imputation 회귀 삽입 - 변수내의 값들의 평균이 아닌 각 관측치의 특성을 고려하여 삽입, 기초 Imputation 먼저하고 회귀식에 의해 타겟 소실 데이터를 채움

4) EM algorithm - 기초 Imputation - 회귀분석 - Y데이터 변형 - 회귀분석 - Y데이터 변형.. 변화량이 작을 때 까지 반복

5) Multiple Imputation - 다양한 모델 여러번 반복

http://pubdata.tistory.com/51   결측치 채우기 R 코드


이상치 Outlier 검출

이상치 : 속성의 값이 일반적인 값보다 편차가 큰 값

이상치 검출 방법

-Variance : 정규분포에서 97.5% 이상 또는 2.5%의 이하에 포함되는 값을 이상치로 판별

-Likelihood  : 베이즈 정리에 의해 데이터 셋이 가지는 두가지 샘플(정상/이상)에 대한 발생 확률(Likelihood)로 이상치 판별

-Nearest-neighbor : 모든 데이터 쌍의 거리를 계산하여 이상치 검출

-Density : 샘플의 LOF(local outlier factor)를 계산하여 값이 가장 큰 데이터를 이상치로 추정, 밀도있는 데이터 셋으로 부터 먼 데이터

http://pubdata.tistory.com/53  [R] 잡음 처리(MAF), 이상치 검출(카이제곱분포, LOF)

-Clustering : 데이터를 여러 클러스터로 구분한 후 작은 크기의 클러스터나 클러스터사이의 거리를 계산하여 먼 경우 해당 클러스터를 

                    이상치로 판별 


이상치 대체Outlier Replacement

1) 하한값과 상한값을 결정한 후 하한값보다 적으면 하한값으로 대체, 상한값보다 크면 상한값으로 대체함

2) 평균의 표준편차 

    하한값 = 평균 - n*표준편차, 상한값 = 평균 + n*표준편차  일반적으로 3시그마 (99.7% 이상 혹은 이하값을 이상치로 제거하거나 대체)

3) 평균 절대 편차

    중위수로부터 n편차 큰 값을 대체

4) 극 백분위수 

    상위 p번째 백분위수보다 큰 값을 대체

잡음 Noise

잡음: Waveform의 한 부분이지만 입력된 신호가 아닌 것, 실제 입력되지 않았지만 입력되었다고 잘못 판단된 값

랜덤(화이트) 잡음 : 일정 규칙 없이 랜덤하게 발생하는 잡음

통계적 잡음 : 통계적 분포를 따르는 잡음


잡음 처리

- Moving Average Filter : window(mask)가 이동하면서 주위 값들에 비해 높거나 낮을 경우 평균 값으로 대체

http://pubdata.tistory.com/53  [R] 잡음 처리(MAF), 이상치 검출(카이제곱분포, LOF)

- Median Filter : 일정 범위의 중간 값을 해당 지점의 값으로 지정 (잡음이 클 경우 MAF보다 좋은 성능)

- Curve Fitting and Splines : 최적의 파형을 기준으로 해당 파형에 유사한 신호를 검출

- Digital Filter : 고정된 시간 간격 단위의 필터(low pass, high pass, band pass)

- Pivoting : 데이터 셋을 설정한 축Pivot을 기준으로 카운팅하여 새로운 통계값을 생성


변수들을 scatter plot을 찍어봤을 때 선형관계가 아닌 로그, 제곱, 지수 등의 모습이 보일때 변수 변환을 통해

선형 관계로 만들어 놓으면 더욱 분석이 용이하다


변수 변환 Variable Transformation

1) 자연로그 Y=log(X)  <- 분포가 right skewed된 경우 유용함

2) 제곱근  <-분포가 right skewed 된 경우 유용함. 자연로그보다 약하게

3) 역 Y = 1/X

4) 제곱

5) 지수 

6) 표준화 


데이터 통합 Data Integration

1) 중복 데이터의 제거 : 상관분석Correlation 등을 통해 중복된 변수 및 데이터 제거 필요

2) 다른 표현 문제 : 계량/계측 단위가 다른 것(Kg / 파운드 등) 표현 일치 계산 필요

3) 다른 스케일 : mm / Cm 등 스케일 통합 문제 Correlation된 값으로 계산 가능


데이터 변환 Data Transformation

1) Smoothing : 잡음 제거, 데이터 추세에 벗어나는 데이터 변환, 너무 타이트하면 over-fiting 우려, 너무 루즈하면 예측 정확도 감소 가능성

2) Aggregation : 데이터 요약

3) Generalization : 특정 구간에 분포하는 값으로 스케일 변화 (Correlation도 한가지 방법)

4) Normalization : min-max normalization, z-score normalization , decimal scaling

5) feature construction : 새로운 속성이나 특징을 만드는 방법 (PCA, FFT) 

   http://pubdata.tistory.com/54  [데이터 전처리]특징 추출, 차원 축소, 상관 분석, 주성분 분석, 푸리에 변환


반응형