[ 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% 이상 | 모델 기반 처리 |
(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차원 데이터 구조로 테이블 형식의 데이터를 저장 |
'Data Analysis > Process' 카테고리의 다른 글
3. 데이터 전처리 _ (2) 분석 변수 처리 (0) | 2024.06.19 |
---|---|
2. 데이터 수집 (0) | 2024.06.19 |
1. 분석 주제 정의 (0) | 2024.06.19 |
4. 데이터 분석 및 모델링 _ (2-4) 데이터 유형에 따른 분석 모형 (0) | 2024.06.13 |
4. 데이터 분석 및 모델링 _ (2-3) 머신러닝 기반 분석 모형 (0) | 2024.06.13 |