ML. 데이터 전처리
데이터 전처리
1. 데이터 전처리
1.1 문제해결 프로세스
- 데이터 분석 (EDA)
- 결측치 처리
- 이상치 처리
- 연속형 변수 처리
- 범주형 변수 처리
- 파생 변수 생성 (Feature Engineering)
- 변수 선택 (Feature selection)
데이터 전처리는 데이터의 특성을 이해하고, 수정하여 품질을 향상시키는 과정
ML 모델의 성능을 향상시킴과 더불어, 모델의 해석 가능성을 높이는 역할
1.2 데이터 전처리의 중요성
- 데이터 전처리는 편향을 제거하며, 이를 통해 신뢰성 높은 모델을 제작 가능
선형 회귀 모델 및 거리기반 알고리즘 (KNN)은 결측치 및 이상치에 크게 영향을 받는다. - 알고리즘 모델 성능에 영향을 끼치는 중요 변수나 패턴을 찾기가 용이하다.
중요한 변수나 패턴을 찾는 일은 모델의 복잡도를 낮추고, overfitting을 방지한다.
데이터 전처리가 선행되지 않으면, 데이터의 편향과 같은 불균형을 만들고, 해석을 방해한다. - 데이터 시각화가 용이하여 데이터 및 모델 해석에 있어서 편리함을 제공한다.
EDA하는 과정에서 시각화가 선행이 되는데, 이러한 경우, 해석이 어려워진다.
결측치와 이상치를 다루는 것을 우선으로 한다.
2. 데이터의 종류
2.1 정형 데이터 (Tabular)
행과 열이 있는 테이블로 이루어진 정형 데이터 및 테이블
관측값을 나타내는 행(row)과 속성을 나타내는 열(column)로 구성
2.2 비정형 데이터 (Unstructured)
구조화 되지 않은 데이터
자연어 텍스트, 음성, 영상, 이미지 등이 이에 해당하고, DL로 보통 문제를 해결한다.
3. 변수
3.1 변수란?
측정하거나 계산할 수 있는 특성, 숫자, 수량을 의미
시간에 따라 값이 변경되어서 변수라고 이름을 짓는다.
변수의 종류
수치로 표현할 수 있는지에 따라
- 수치형 변수(Numerical Variable)
- 범주형 변수(Categorical Variable)
3.2 수치형 변수
연속형 변수(Continuous Variable) : 실수 범위 내에서 수치로 표현 가능한 연속적인 값을 가지는 변수
ex. (주식)시가, 종가 / (개인정보)키, 몸무게
이산형 변수(Discrete Variable) : 셀 수 있는 표현이 가능한 특징을 가지는 정수로 구성된 변수
ex. (거래)거래 수량
3.3 변수형 변수
명목형 변수(Nominal Variable) : 범주로 표현될 수 있는 변수, 변수 간 순서나 등급이 존재 x
ex. (주식)종목 / (쇼핑)물품 카테고리
서열형 변수(Ordinal Variable) : 순위 또는 등급을 가지는 변수
ex. (등급) S, A, …
4. 결측치 다루기
결측치 : 데이터에서 누락(결측)된 관측치
데이터의 손실과 더불어, 분포를 왜곡시켜 편향을 야기한다.
N/A (Not Available) , NaN (Not a Number) , Null, Empty, ? 등등
4.1 결측치 매커니즘
완전 무작위 결측 (MCAR : Missing Completely At Random)
결측치가 다른 변수와 상관 없이 무작위로 발생하는 경우
결측 원인이 관측치와 독립이어야 한다.
ex. 센서의 고장 등
무작위 결측 (MAR : Missing At Random)
결측치가 해당 변수와는 무관하나, 다른 변수와 연관되어 있는 경우
다른 변수의 관측치와 연관되어 있어서, 예측 모델을 통해 대체할 수 있다.
ex. 설문조사에서 특정 키인 관측값의 몸무게가 결측이 되어 있는 경우
비무작위 결측 (MNAR : Missing Not At Random)
결측의 원인이 해당 변수에 연관되어 있는 경우
ex. 설문조사에서 특정 몸무게인 사람들이 결측값을 내놓은 경우
4.2 결측치 패턴
일변량 결측 패턴 (Univariate Pattern)
하나의 변수에서만 결측치가 발생
단조 결측 패턴 (Monotone Pattern)
일정하고 단조적인 패턴으로 결측치가 발생
긴 시간이 드는 관측에서 나타남
ex. 기계의 고장으로 인해 결측이 된 경우, 실험체의 사망으로 인해 중도포기 된 경우
일반 결측 패턴 (General & Non-Monotone Pattern)
단조적이지 않은 형태의 결측치
규칙 결측 패턴 (Planned Pattern)
결측의 원인이 일정한 패턴 및 규칙에 따라 발생하는 경우
4.3 결측치 처리
목록 삭제 (Listwise Deletion)
변수에 결측치가 존재하는 row를 제거
다만 너무 많은 데이터를 지울 가능성이 있으며, 완전 무작위 결측이라면, 데이터를 이용한 insight를 잃을 수 있어 많은 고려가 필요하다.
열 삭제 (Dropping Columns & Features)
변수에 결측치가 존재하는 열을 제거
다만 일정 비율이 결측치인 행만 지우는 것으로 함
삭제의 장단점
- 장점1 : 결측치를 처리하기 편리하다.
- 장점2 : 결측치가 데이터 왜곡의 원인이라면, 삭제로 인한 왜곡 방지 및 알고리즘 모델 성능 향상을 기대할 수 있다.
- 단점1 : 결측치에도 데이터 특성이 유효한 경우에 삭제할 경우 이 정보를 지우게 된다.
파생변수를 새로 생성해주는 것도 방법이다.
ex. 결측치 유무에 대한 feature 추가 - 단점2 : 삭제된 데이터로 인해 남은 데이터의 편향이 만들어질 가능성이 있다.
- 단점3 : 관측치의 정보가 줄어들어 모델에 악영향
대체 (Imputation)
결측치를 관측치의 통계값으로 대체하는 것 (평균, 최빈, 중앙)
- 장점1 : 대체된 값은 데이터의 통계 특성을 반영해서 정보가 안정적으로 보존됨
- 장점2 : 데이터 샘플의 크기가 유지되어서 모델에 원본 크기로 적용 가능
- 단점1 : 통계값으로 인해 변수의 분산이 감소해서 변수 간 상관관계가 낮아지는 문제가 있음
회귀 대체 (Regression)
변수 간의 관계를 파악 후, 예측하여 결측치를 대체하는 방식
다른 변수 (X), 결측치 대체를 하고자 하는 변수(y)로 regression
- 장점1 : 변수 간 연관성을 활용해서 결측치 예측해서, 많은 데이터를 활용 가능
- 장점2 : 삭제 및 대체 방법에 비해 실제 데이터와 유사할 가능성이 높음
- 단점1 : 예측 모델을 생성해야하는 어려움이 있음
결측치 처리 방안
- 결측치 비율 10% 미만 : 제거, 대체
- 결측치 비율 20% 미만 : 회귀 대체, Hot Deck
- 결측치 비율 20% 이상 : 회귀 대체
5. 이상치 다루기
이상치 : 변수의 분포상 비정상적으로 극단적이며, 일반적인 데이터 패턴을 벗어나는 관측치
평균과 같은 통계량을 왜곡시키는 원인이 되기도 한다.
이상치의 원인
- 데이터의 전송 오류, 해킹, 오작동
- 휴먼 에러
- 편법이나 조작
이렇듯 원인을 명확하게 확정할 수 없다.
이상치 탐지 및 제거가 필요한 이유
데이터의 패턴과 인사이트를 도출하는 것이 가능하기 때문
전체를 왜곡시키는 이상치를 제거하여 모델의 안정성 향상을 기대
5.1 이상치 종류
점 이상치 (Point)
가장 잘 파악할 수 있는 이상치
상황적 이상치 (Contextual Outlier)
정상적인 데이터 패턴이지만, 상황에 따라 이상치로 변환되는 형태
보통 시계열 데이터에서 주로 나타나는 case
집단적 이상치 (Collective Outlier)
데이터 분포에서 집단적으로 편차가 이탈되어 이상치로 간주되는 경우
개별로 보면 이상치처럼 보이지 않는 것이 특징
ex. spam mail : 일반 메일과 유사하지만 정상적이지 않은 메일
5.2 이상치 탐지
Z-Score : 평균으로 부터 표준편차 거리 단위를 측정하여 이상치를 탐지하는 방법
Z값이 2.5 ~ 3의 수치가 나오면 이상치로 판별
$Z = \displaystyle \frac{x - \mu}{\sigma}$
- 장점1 : 데이터에서 이상치를 간단하게 탐색가능
- 단점1 : 표준화된 점수를 도출하는 과정이라 데이터가 정규분포가 아닌 경우, 효과적이지 않다.
- 단점2 : Z-score를 구성하는 평균과 표준편차 자체가 이상치에 민감하다
IQR (Inter Quartile Range)
상위 75%와 하위 25% 사이의 범위
$Q_1 - 1.5 \times IQR$ 및 $Q_3 + 1.5 \times IQR$을 최극단의 이상치로 판단하여 처리한다.
- 장점1 : 데이터의 중앙값과 분포만을 통해 이상치를 식별해서 직관적
- 장점2 : 편차대신 백분위수를 이용해서 강건하다.
- 장점3 : 데이터가 몰려있어도 분포를 활용해서 효과적
- 단점1 : 식별 기준이 백분위수에 의존적임
- 단점2 : 왜도가 심하거나 정규분포를 따르지 않으면 작동이 잘 안됨
5.3 이상치 처리
삭제
이상치에 해당하는 데이터 포인트를 제거하는 방법 / 다만 도메인 지식에 기반해서 객관적으로 상황에 맞게 제거하는 것이 필요하다.
대체
통계치로 이상치를 대체한다. 단, 상한값과 하한값을 정해놓고 이상치가 경계를 넘어갈 때 대체, 회귀 및 KNN 등 거리기반 모델로 이상치를 예측/대체할 수 있다.
변환
변수에서 매우 큰 값을 가진 이상치를 완화시킬 수 있는 방법(큰 값을 작은 값으로 변환)
ex. log transformation