본문 바로가기

Data Science/Machine Learning

[ML] Missing value(결측치)를 처리하는 방법과 결측치의 종류

반응형

이번 포스팅에서는 데이터 전처리 과정에서 필연적으로 직면하게 되는 데이터셋의 결측치를 처리하는 방법과 결측치의 종류에 대해서 알아보려고 한다. 평소에 결측치를 처리한다고 생각하면 0값, 평균값, 중앙값 등.. 어떻게 보면 단순무식한 방법만을 생각해왔던 것 같다. 그런데 과연 세계에 수많은 똑똑한 사람들도 이러한 단순무식한 방법으로만 결측치를 처리할까? 그럴 리 없다고 생각해서 한 번 찾아보았다. 한 번 같이 살펴보자.

<결측치를 채우는 방법>

1. 행 또는 열 삭제 : 가장 단순한 방식이다. 결측치가 존재하는 행 또는 열(feature)을 삭제하는 방식이다.

 

2. 중앙값, 평균값으로 대체 : 빈 결측치에 해당하는 Feature의 평균값이나 중앙값으로 대체한다.

 

3. 최빈값으로 대체 : 하지만 이 방법은 주로 Nominal feature(범주형 feature)일 때가 그나마 용이하다.

 

4. XGboostLightGBM의 use_missing=False 인자를 첨가하면 알고리즘이 알아서 Training loss에 기반해 결측치를 채우게 된다. 

 

5. K-NN알고리즘을 사용 : 결측치의 값을 가장 가까운 즉, feature similarity를 적용하면서 대체한다. 하지만 이상치(outlier)에 민감하다는 단점이 존재한다.

 

6. MICE(Multivariate Imputation by Chained Equation) : 결측치를 한 번 대체하는 게 아니라 여러번(multi) 대체해보면서 결측치의 불확실성(uncertainty)을 체크하면서 결측치를 대체한다. 이는 이산, 연속 변수에도 flexible하게 사용되는 장점이 있다.

 

7. 딥러닝 이용 : 필자는 이 부분이 가장 신기했던 것 같다. 결측치를 채우는 방식에도 바로 딥러닝을 적용해 학습시켜 알아서 최적의 결측치를 찾는 것이다. 주로 Categorical feature에 유용하며 다른 방법들에 비해 꽤 정확하다. 하지만 딥러닝을 사용하다보니 대용량의 데이터에는 속도가 느리다. 또한 만약 결측치가 존재하는 feature가 여러개라면 여러개를 동시에 딥러닝에 적용은 못하고 하나의 feature씩만 impute할 수 있다. 또한 결측치가 존재하는 칼럼들의 정보를 갖고 있는 다른 칼럼들을 사용자가 직접 지정해주어야 한다는 단점이 있다. 즉, 하이퍼파라미터 튜닝이 필요하다.

 

그 이외로 Regression을 통해 결측치를 예측하는 Stochastic regression imputaion, 주어진 이산적인 데이터의 범위 내에서 관찰 데이터들로부터 추정하는 Extraplolation과 Interpolation, 관련되거나 비슷한 feature로부터 결측치를 랜덤하게 선택하면서 대체하는 Hot-deck imputation 방법 등이 있다. 

 

<결측치의 종류>

그렇다면 결측치가 존재한다고 하면 무조건적으로 방금까지 알아본 결측치를 채우는 imputation 알고리즘을 사용해야 할까? 답은 '아니다' 이 다. 결측치의 종류에 따라 결측치를 채우는 방법이 달라지기도 한다. 결측치의 종류에 대해서 알아보자.

 

1. MCAR(Missing Completely At Random) : 완전무작위 결측

결측치가 다른 변수들과 아무런 상관이 없는 경우를 말한다. 보통 대부분의 결측치 처리 패키지가 MCAR을 가정하고 있다. 이러한 결측치가 존재할 때 결측치가 존재하는 데이터를 삭제하거나 결측치가 속해있는 원본 대규모 데이터셋에서 단순무작위표본추출로 대체를 한다.

예를 들어, 데이터를 입력하는 사람이 깜빡하고 특정 항목의 데이터를 입력하지 않았다거나 전산 오류로 인한 누락 등이 대표적인 경우에 해당한다.

 

2. MAR(Missing At Random) : 무작위 결측

누락된 자료가 특정 변수와 연관되어 발생하지만 변수의 결과와는 관계가 없는 경우를 말한다. 결측치가 전체 정보를 갖고 있는 변수에 의해 설명이 가능하다. 

예를 들어, "남성이 우울증 설문조사를 기입 확률은 낮지만 우울함의 정도와는 상관이 없을 때"와 같은 예시를 들 수 있다.

 

3. MNAR(Missing Not At Random) : 비무작위 결측

1,2번 이외의 경우를 말하며 결측치의 값이 다른 변수와 연관이 있는 경우를 말한다.

 

#참고 포스팅

https://towardsdatascience.com/6-different-ways-to-compensate-for-missing-values-data-imputation-with-examples-6022d9ca0779

 

6 Different Ways to Compensate for Missing Data (Data Imputation with examples)

Popular strategies to statistically impute missing values in a dataset.

towardsdatascience.com

 

반응형