1. 결측치
결측치란 데이터에서 누락된 값을 말한다. 이는 데이터의 손실과 더불어서 분포를 왜곡시켜서 편향을 만든다.
보통 `N/A`, `NaN`, `NULL`,` `,`?` 등으로 기입되어 있다.
이러한 결측치가 발생한 타입, 패턴, 처리하는 방법에 대하여 알아볼 것이다.
1-1. 결측치 매커니즘
1-1-1. 완전 무작위 결측
MCAR:Missing Completely At Random
완전 무작위 결측이라고 부르며 결측치가 다른 변수와 상관없이 무작위로 발생한 경우를 의미한다. 보통 센서 고장 전산 오류 등과 같은 관측과 입력과정에서의 누락으로 인한 결측이다.
1-1-2. 무작위 결측
MAR:Missing At Random은 무작위 결측으로, 관측치가 해당 변수와는 무관하나 다른 변수와 연관이 있는 경우를 의미한다. 이것은 다른 변수에 대한 의존 여부를 통해 검증 가능하다. 쉽게 말하자면 a변수가 특정 조건일 때 b 변수가 결측값이더라라는 것을 의미한다.
1-1-3. 비무작위 결측
MNAR: Missing Not At Random 비무작위 결측은 결측의 원인이 해당 변수와 연관되어 발생하는 것을 의미한다. 이는 결측치의 특정원인등을 밝히기 어려운데, 보통 설문조사에서 발생한다. 설문조사의 특정 질문에 대하여 민감하여 답을 하지 않는 등이 이에 해당한다.
1-2. 결측치 패턴
1-2-1. 일변량 결측 패턴
일변량 결측 패턴이란 Univarate Pattern이라고도 부르며 말 그대로 하나의 변수에서만 결측치가 발생하는 것을 의미한다.
이는 다른 변수와는 연관성이 없다.
1-2-2. 단조 결측 패턴
단조 결측 패턴은 Monotone Pattern이라고 부르며 일정하고 단조적인 패턴을 가진 결측치로 특정 시점부터 결측치가 이어진다는 등을 의미한다.
1-2-3. 일반 결측 패턴
일반 결측 패턴은 General & Non-Monotone Pattern이라고 부르며, 단조적이지 않은 형태의 결측치를 의미하고 다른 변수와의 관계에 따라 나타나는 결측치이다.
1-2-4. 규칙 결측 패턴
규칙 결측 채턴 Planned Pattern은 결측의 원인이 일정한 패턴 및 규칙에 따라 발생하는 것을 의미한다. 특정 상황마다 반복적으로 결측이 발생하는 것을 말한다.
1-3. 결측치 처리
1-3-1. Deletion
가장 단순한 방법으로 변수에 결측치가 존재하는 row 혹은 column 자체를 삭제하는 방법이다. 이는 모든 변수가 결측치없이 채워진 형태만을 이용하여 모델링 및 분석을 하고자 사용한다.
단순한 방법이지만 너무 많은 값들이 삭제될 수도 있고, 의미를 가지고 있는 값들도 제거될 수도 있기 때문에 위의 설명한 결측치의 메커니즘/패턴, 결측치의 비에 따라 신중하게 사용해야 한다.
위와 같이 결측치가 포함되는 row나 column 전체를 삭제하는 방법을 Listwise, 목록 삭제라고 부르며, 통계에 따라 그때 그때 결측치 만을 제외하고 진행하는 방법을 단일값 삭제 Pairwise 기법이라고 부른다.
1-3-2. Imputation
Imputation이란 결측치를 관측치의 통계값이나 특정값으로 대체하는 것을 의미한다. 일반적으로 통계값으로는 평균값, 최빈값, 중앙값 등이 존재한다. 이 방법은 데이터의 통계적 특성을 반영하고 정보를 안정적으로 보존이 가능하고 데이터의 수도 유지할 수 있다. 그러나 통계값으로 인해 변수의 분산이 감소하여 변수간 상관관계가 감소할 수도 있다.
또 많이 사용하는 방법은 regression을 이용하여 대체를 해주는 것이다. 일반적인 머신러닝 모델(LGBM, RF)등을 이용하여 결측치가 없는 데이터를 이용해 학습하여 결측치를 대체하는 방법도 많이 사용한다. 이 방법은 실제 데이터와의 유사 가능성이 높다는 장점이 있으나, 여러 컬럼에 결측치가 있을 경우 여러 예측 모델을 만들어야 한다는 단점이 있다.
2. 이상치
이상치도 종류, 탐지, 처리하는 방법에 대하여 각각 알아보자.
우선 이상치란 변수의 분포상 비정상적으로 극단적인 값을 갖는 일반적인 데이터의 패턴을 벗어나는 관측치를 의미한다. 이상치도 결측치와 비슷하게 데이터 전송오류, 오작동, 조작 등 다양한 원인에 의하여 발생하는데, 이러한 이상치는 통계값을 왜곡시키며 모델의 성능을 낮추는 원인이다.
2-1. 이상치 종류
2-1-1.점 이상치
점이상치는 Global outliers라고 부르며, 대부분의 관측치들과 동떨어진 형태의 이상치를 말한다. 변수가 비정상적인 패턴으로 분포되어 있기 때문에 탐지하기 쉽다.
2-1-2. 상황적 이상치
Contextual outlier, 상황적 이상치는 정상적인 데이터 패턴이라도 상황에 따라 이상치로 간주할 수 있는 데이터를 말한다. 주로 시계열 데이터에서 많이 발생하며 겨울에 온도가 10도와 같은 겨울이라는 상황에 맞지 않은 데이터를 의미한다.
2-1-3.집단적 이상치
Collective Outlier이라 부르며, 데이터의 분포에서 집단적으로 편차가 이탈되어 이상치로 간주한다. 개별로 보았을 때는 이상치처럼 보이지 않는다는 특징이 있다.(예를 들어 스팸메일의 메일 자체는 이상하지 않지만 정상적이지 않은 메일이다)
2-2.이상치 탐지
2-2-1. Z-Score
평균으로부터의 표준편차 거리 단위를 측정하여 이상치를 탐지하는 방법으로, 일반적으로 Z값이 2.5~3이 나오면 이상치로 판별한다. 이는 데이터가 정규분포를 따른다고 가정하기 때문에 데이터가 정규분포를 따르지 않으면 효과적이지 않는다.
2-2-2. IQR
위와 같은 Box plot에서 $ Q_1-1.5*IQR$ 보다 작거나 $Q_3+1.5*IQR$을 넘는 값을 이상치로 판단하여 처리한다.
이는 데이터의 중앙값과 분포를 이용하여 이상치를 탐지하기 때문에 직관적이며 표준편차가 아닌 백분위수를 사용하여 이상치에 강건하다는 특징이 있다. 그러나 왜도가 심하거나 정규분포를 따르지 않을 경우 역시 제대로 작동하지 않을 수 있다.
2-3. 이상치 처리
2-3-1. Deletion
결측치와 동일하게 이상치도 해당하는 데이터값을 제거하는 방법이 있다. 또한 이것 역시 결측치와 동일하게, 중요한 정보를 내포하고 있는 경우도 존재하기 때문에 도메인 지식이나 데이터를 잘 확인하고 제거해야 한다.
2-3-2. Imputation
통계치를 이용하여 이상치를 대체할 수 있다. 상한값과 하한값을 정해놓고 그 경계를 넘어갈경우 대체할 수도 있고, 회귀나 KNN등의 거리기반 알고리즘을 이용하여 이상치를 대체할 수 있다.
2-3-3. Transformation
변수 내에서 매우 큰 값을 가진 이상치를 완화시키는 방법으로 로그화를 시키거나 제곱근으로 변환하는 등도 시도해볼 수 있다.
'ML & DL > 개념정리' 카테고리의 다른 글
Feature engineering (0) | 2024.01.11 |
---|---|
연속형, 범주형 변수 처리 (0) | 2024.01.11 |
PyTorch Lightning (0) | 2024.01.09 |
Hugging Face를 이용한 Finetuning 실습 (0) | 2024.01.09 |
Timm을 이용한 Finetuning 실습 (0) | 2024.01.09 |