본문 바로가기
Data Science/Machine Learning

[Machine Learning] 데이터 전처리(1) - 결측치 처리(1)

by 인사이티드 2023. 6. 22.

데이터 분석을 하기 위해서 데이터의 전처리는 필수적이다. 데이터들을 수집해서 나온 가공되지 않은 데이터는 분석을 바로 할 수가 없는 상태이다. (결측치의 존재, 이상치의 존재, 여러 데이터 타입의 혼재, ...) 만약 이러한 데이터를 가지고 바로 모델링을 한다면 데이터의 잡음으로 인해 우리가 모델의 결과가 굉장히 안 좋을 것이다. 혹은 모델이 아예 학습을 하지 못할 수도 있을 것이다. 그러면 가장 선행되어야 하는 전처리 작업은 무엇일까?
그것은 바로 결측치 (Missing values)를 처리하는 것이다.

결측치는 다음과 같이 크게 세 가지 유형으로 나눌 수 있다.

1. MCAR(Missing Completely At Random)
데이터가 missing난 이유가 데이터와 무관하게 발생한 것을 말한다. 예를 들어, 단순히 운이 안 좋아서 저울의 배터리가 없어서 기록이 안 되어있다거나, 조사원이 우연히 조사 결과를 누락한 일들이 될 수 있다. 그러나, MCAR은 데이터와 무관하게 발생했다는 강한 가정이기 때문에 종종 결측치 대체 유형으로 알맞지 않을 수 있다.

2. MAR(Missing At Random)
데이터가 missing날 확률이 관측된 데이터에 따라 다른 것을 말한다. MCAR보다 약한 가정이기 때문에 더 넓은 개념이다. 예를 들어, 저울이 딱딱한 표면에 있지 않아서 딱딱한 표면 위에 있을 때보다 결측치가 더 많이 발생했다면 이것은 MAR이다. 현대의 결측치 대체는 MAR 가정을 하고 시작한다.

3. MNAR(Missing Not At Random)
데이터가 missing난 이유가 우리가 모르는 어떠한 이유에 의해서 발생한 것을 말한다. 예를 들어, 저울이 시간이 지날수록 낡아서 더 많은 결측치를 생산해냈지만, 우리가 이 사실을 모른다면 MNAR이라 할 수 있다. 현실적으로 MAR과 MNAR을 구분하는 것은 매우 어렵다.


결측치 대체의 방법으로는 여러 가지가 존재할 수 있다.

1. Listwise Deletion
첫 번째 방법은 결측치가 존재하는 행을 삭제하는 것이다. 단순히 삭제해서 결측치를 없애기 때문에 결측치를 처리하는 가장 간단한 방법이다. 그러나, 데이터셋의 사이즈를 줄여서 데이터의 품질을 안 좋게 만들 수 있고, 결측치에 대한 패턴이 존재하는 경우 알아낼 방법이 없기 때문에 단점 또한 명확하다. (개인적으로도 잘 사용하지 않는 방법이다.)

2. Mean / Median Imputation
두 번째 방법은 결측치를 그 행의 평균값 또는 중간값으로 대체하는 방법이다. 카테고리컬 변수의 경우 최빈값이 될 수도 있을 것이다. 이 방법 역시 첫 번째 방법과 마찬가지로 간편한 방법이다. MCAR의 경우 해당 방법으로 결측치를 채워도 괜찮다. 그러나 마찬가지로 결측치에 대한 어떤 패턴이 존재하는 경우, 해당 정보를 무시하게 되기 때문에 더 좋은 데이터셋을 만드는 데에 한계가 존재한다.

3. Model-based Imputation
마지막 방법은 모델 기반 대체 방법이다. 해당 방법은 KNN, EM, ML, 회귀, RandomForest 등 다양한 방법이 존재할 수 있다. 데이터 사이의 패턴을 학습하여 결측치를 대체하는 방법이기 때문에 좀 더 좋은 데이터셋을 만들 수 있다는 장점이 있다. 그러나, 앞의 두 방법보다 복잡하고 알고리즘에 따라 시간이 오래 걸릴 수도 있다. (e.g. KNN의 neighbors 수를 10 이상으로 설정, RandomForest의 estimators 수를 크게 설정, ...)

이 외에도 데이터셋에 대한 사전정보를 가지고 있다면 더 나은 imputation을 할 수 있다.

 

결측치 처리(2): https://insighted-h.tistory.com/19

 

[Machine Learning] 데이터 전처리(1) - 결측치 처리(2)

[Machine Learning] 데이터 전처리(1) - 결측치 처리(1) 데이터 분석을 하기 위해서 데이터의 전처리는 필수적이다. 데이터들을 수집해서 나온 가공되지 않은 데이터는 분석을 바로 할 수가 없는 상태

insighted-h.tistory.com


참고자료

[1] "Introduction to Data Imputation", Simplilearn, 2023,

https://www.simplilearn.com/data-imputation-article#importance_of_data_imputation

[2] "Concepts of MCAR, MAR and MNAR",

https://stefvanbuuren.name/fimd/sec-MCAR.html

[3] "All about missing value imputation techniques | missing value imputation in machine learning",
Unfold Data Science, 2022, https://www.youtube.com/watch?v=-uC79UTOye8