본문 바로가기
Data Analysis/Process

3. 데이터 전처리_(1) 데이터 정제

by @0-0 2024. 6. 19.
반응형

 

더보기

[  Data Analysis Process  ]

1. 분석 주제 정의

2. 데이터 수집

3. 데이터 전처리

   1) 데이터 정제

   2) 분석 변수 처리

4. 데이터 분석 및 모델링

5. 결과 해석 및 시각화

 

데이터 전처리

: 분석 결과의 오류를 방지하고 신뢰도를 높이기 위해 수행하며, 반복적인 전처리 수행이 필요


 

1. 데이터 정제(Data Cleansing)

 

1) 결측값 처리

 

(1) 결측값(Missing Value)

: 데이터의 값이 누락된 것으로 NaN, NA, Null로 표기

 

 

(2) 결측값 종류

MCAR
(
완전무작위 결측)
결측치가 발생한 변수의 값에 상관없이 전체에 걸쳐 무작위로 발생
⇒ 결측치의 영향 없음
MAR
(
무작위 결측)
결측치가 발생한 변수의 값이 다른 변수와 관련이 있으나 결과와는 상관없는 경우
⇒ 결측치의 영향이 다소 있으나 편향은 없으므로 대체 가능
MNAR
(
비무작위 결측)
결측치가 발생한 변수의 값이 다른 변수와 상관이 있는 경우
⇒ 결측치의 영향이 크므로 결측치의 원인에 대한 조사 후 대응 필요

 

 

(3) 결측값 비율에 따른 결측치 처리 방법

결측치 비율 결측치 처리 방법
10% 미만 제거 또는 대체
10% 이상 20% 미만 모델 기반 처리
20% 이상 모델 기반 처리

 

 

출처: 캐글- A Guide to Handling Missing values in Python

 

(4) 결측값 제거

Listwise deletion
(행 제거)
결측치가 존재하는 행(instance) 자체를 삭제
Column deletion
(열 제거)
결측치 비율이 높거나, 분석에 불필요한 열을 삭제
Pairwise deletion 분석에 필요한 변수 쌍 간의 결측치만 제외하고 나머지 데이터를 사용,
회귀 분석, 상관 분석 등에서 주로 사용됨

 

 

(5) 결측값 대체

 

(a) General Imputation

 ① 상수 처리 : 특정한 상수 값으로 대체 

 ② 평균 대체 : 평균값, 중앙값, 최빈값, 특정 값으로 대체

 

* 상수 처리 vs 평균 대체의 특정값

- 상수 처리는 결측값을 간단히 처리하고자 할 때 분석가의 주관적 선택으로 값을 선택, 이 때 데이터의 특성과 무관할 수 있음.

- 특정 값 대체는 데이터의 맥락을 유지하여 결측값을 처리하고자 할 때 도메인 지식, 패턴에 기반하여 대체

 

(b) General Imputation - 시계열 데이터

 ① Forward Fill : 결측값 이전의 값으로 대체

 ② Backfill : 결측값 다음의 값으로 대체

 ③ Interpolation(보간법) : 결측값 주변 값들을 이용해 수학적 방법으로 추정

 

 

(c) Advanced Imputation(모델 기반 처리)

 ① 회귀 대체 : 다른 변수들과의 회귀 관계를 사용하여 결측값을 예측

 ② K-NN 대체 : K-NN 알고리즘을 사용하여 데이터의 패턴을 반영해 결측값을 대체

 ③ MICE(다중대체) : 결측값을 여러 번 대체하고 각 결과를 결합

 

* MICE : Imputation→Analysis→Pooling 과정을 거침. 분포를 토대로 결측치를 대체한 여러 Data set을 생성,분석하여 분석 내용을 토대로 각 결과를 결합


 

2) 이상치 처리

 

(1) 이상치(Outlier)

: 보통 관측된 데이터의 범위에서 많이 벗어난 관찰값, 도메인에 맞게 판단하여 처리가 필요

 

 

(2) 이상치 확인

 

(a) 통계적 방법

 ① Box-Plot

 ② IQR(Interquartile Range) 

 ③ Z-Score

 

(b) 머신러닝 방법

 ① Isolation Forest

 ② LOF(Local Outlier Factor)

 ③ One-Class SVM

 

(c) 시각적 방법

 ① Scatter Plot

 ② Heatmap

 

 

(3) 이상치 처리

 

(a) 제거 : 이상치의 수가 적거나, 제거 시 전체 데이터의 분석 결과에 대한 영향이 미미할 때 이상치를 삭제

 

(b) 대체 : 데이터 손실을 최소화하기 위해 이상치를 적절한 값으로 대체

 ① 대푯값(평균, 중앙값, 최빈값)

 ② 회귀

 

(c) 변환 : 데이터 분포를 안정화시키기 위해 이상치를 변환하여 처리

 ① 로그 변환 : 양수 데이터에서 유용, 큰 값의 이상치의 영향을 감소시킴

 ② 제곱근 변환 : 양수 데이터에서 유용, 데이터 분포의 안정화에 효과적

 ③ Box-Cox 변환 : 다양한 lambda 값을 적용해 정규분포에 가깝게 만듬, 분포 안정화, 이상치 영향 감소에 효과적


3) 중복 데이터 처리

(1) 중복 데이터

: 통계를 왜곡하고, 모델 성능을 저하하는 등의 문제가 생길 수 있으므로 중복 데이터를 효과적으로 탐지하고 제거해야 함

 

 

(2) 중복 데이터 탐지

① 완전히 동일한 행(레코드) 찾기

② 키 값과 같은 특정 열을 기준으로 중복을 탐지

 

 

(3) 중복 데이터 처리

 ① 제거

 ② 특정 기준에 따라 유지

 ③ 통합 : 중복된 데이터가 각각 중요한 정보를 가지고 있을 경우, 통합(병합, 평균화 등)하여 하나의 레코드로 만듬

 


4) 노이즈 처리

(1) 노이즈

: 측정, 입력 과정의 오류 등 다양한 원인에 의해 발생하며, 분석 과정에서 오류를 유발하거나 분석 결과의 정확성을 저하시킴

 

 

(2) 노이즈 탐지

 

(a) 통계적 방법

 ① 분산 분석

 ② 이동 평균 : 단기적 변동을 부드럽게 하고, 이동 평균에서 벗어나는 값을 식별

 ③ 자기 상관 분석(Autocorrelation Analysis) : (시계열) 시간적 자기 상관성을 분석해 패턴에서 벗어나는 값을 식별

 

(b) 머신러닝 방법

 ① PCA(주성분 분석) : 주요 성분에서 벗어나는 데이터를 탐지

 ② Autoencoder : 인코더-디코더 구조를 사용해 입력 데이터를 압축 후 복원하는 과정에서 재구성 오류를 측정

 

(c) 시각적 방법

 ① 시계열 플롯 : 시간에 따른 변동을 시각적으로 분석해 급격한 변동, 패턴에서 벗어나는 값을 탐지

 ② 페어 플롯 : 여러 변수 간의 관계를 시각적으로 나타내 이상 패턴 탐지

 

 

(3) 노이즈 처리

 

(a) 삭제

 ① 제거

 ② 필터링 : 특정 주파수 대역의 노이즈를 제거하는 필터를 적용

 

(b) 대체

 ① 이동평균

 ② 가우시안 필터 : 가우시안 커널을 사용해 데이터 값을 부드럽게 대체

 ③ Autoencoder : 인코더-디코더 모델을 통해 재구성

 

 

🔍결측치(Missing Value) vs 이상치(Outliers) vs 노이즈(Noise)

결측치(Missing Value) : 데이터 셋에서 값이 누락된 부분

이상치(Outliers) : 다른 데이터 포인트와 현저하게 다른 값을 갖는 데이터 포인트
   - 다른 값들과 현저하게 다른 비정상적인 값을 가짐
   - 이상치 발생 빈도는 매우 낮음
   - 이상치가 패턴이나 규칙성을 가진다면 분석에서 중요한 의미를 가짐

노이즈(Noise) : 유효 신호에 포함된 무작위적이고 불필요한 변동
   - 일반적으로 무작위적(특정 패턴 X)
   - 데이터 전반에 걸쳐 빈번히 발생
   - 데이터의 품질 저하를 일으킴 

 


5) 데이터 타입 변환

(1) 데이터 타입 변환

: 데이터의 일관성을 유지하고 분석의 정확성을 높이기 위해 적절한 타입으로 데이터를 변환해야 함

 

 

(3) 데이터 타입

 

(a) 기본 데이터 타입

정수형(Integer) 소수점이 없는 숫자
실수(Float) 소수점이 있는 숫자
문자열(String) 하나 이상의 문자로 이루어진 데이터
불리언(Boolean) 참(True), 거짓(False)을 나타내는 데이터

 

(a) 복합 데이터 타입

리스트(List) 여러 요소를 순서대로 저장
튜플(Tuple) 리스트와 비슷하지만 수정이 불가
딕셔너리(Dictionary) 키-값 쌍으로 데이터를 저장
데이터프레임(DataFrame) 2차원 데이터 구조로 테이블 형식의 데이터를 저장

 

반응형