missing data size 결측치 처리 방법 완벽 정리: 유형별 대처 전략과 실무 적용법 AI Research, Data Science

결측치 처리 방법 완벽 정리: 유형별 대처 전략과 실무 적용법

Posted by

‘결측치(Missing Data)‘란 데이터 세트에서 관찰되지 않거나 기록되지 않은 값들을 의미한다. 다양한 이유로 데이터 수집 과정에서 일부 정보가 누락되거나, 기록되지 않아 발생하며, 이러한 결측치는 데이터 분석과 모델링에 중요한 영향을 미칠 수 있다.

결측치 처리는 데이터 분석과 머신러닝에서 중요한 단계로, 결측치는 데이터 수집 과정에서 발생하는 불가피한 문제이며, 데이터의 품질과 분석 결과에 큰 영향을 미칠 수 있다.

결측치(Missing Data)란?

  • 결측치란: 데이터 세트 내 특정 관찰값이 누락된 상태를 말한다.
    예를 들어, 설문조사에서 응답자가 특정 질문에 대답하지 않은 경우 결측치로 처리된다.
결측치 처리 방법 완벽 정리: 유형별 대처 전략과 실무 적용법

결측치의 의미

  • 데이터의 불완전성: 결측치는 데이터 세트가 완전하지 않다는 것을 나타내며, 이는 데이터의 해석과 분석에 있어 중요한 제약이 될 수 있다.
  • 정보의 손실: 결측치는 분석에 필요한 정보가 부족하다는 것을 의미하며, 분석 결과의 정확도와 신뢰도에 영향을 미칠 수 있다.
  • 모델 왜곡: 학습 알고리즘의 성능 저하, 특히 선형 모델이나 거리 기반 알고리즘에서 심각하다.

결측치의 유형

  • 완전 무작위 결측(MCAR, Missing Completely At Random): 결측치가 다른 변수들과 독립적일 때 발생한다.
    예를 들면, 설문 조사에서 응답자가 페이지를 넘기는 것을 잊어서 발생한 결측치가 이에 해당한다.
  • 무작위 결측(MAR, Missing At Random): 결측치가 다른 관찰된 변수들에 의존적일 경우에 발생한다.
    예를 들면, 남성이 건강에 관한 질문에 답하기를 꺼려하는 경향이 있다면, 성별 변수에 따라 결측치가 발생한다.
  • 비무작위 결측(NMAR, Not Missing At Random): 결측치가 결측치가 된 변수의 값 자체에 의존적일 경우에 발생한다.
    예를 들어, 소득이 높은 사람들이 소득에 관한 질문을 회피하는 경우이다.

결측치 처리의 중요성

  • 결측치 처리는 분석의 정확성과 모델의 성능에 직접적인 영향을 미치게 된다. 잘못 처리된 결측치는 분석 결과를 왜곡하거나 오류를 발생시킬 수 있다.
  • 따라서, 데이터 분석 과정에서 결측치를 식별하고 적절하게 처리하는 것은 매우 중요하다. 처리 방법은 결측치의 유형, 데이터의 성격, 분석의 목적에 따라 달라질 수 있다.

결측치의 3가지 유형

유형설명예시
MCAR (Missing Completely At Random)완전히 무작위로 발생설문 중 페이지를 실수로 넘긴 경우
MAR (Missing At Random)다른 변수에 따라 결측 발생남성이 건강 질문에 응답하지 않는 경향
NMAR (Not Missing At Random)결측 변수 자체가 결측 원인고소득자가 소득 질문을 회피하는 경우

➡️ 유형을 구분하는 이유?
어떤 방식으로 결측치를 대체할지 결정하는 데 매우 중요하기 때문다.


결측치를 다루는 주요 방법

결측치 제거(Listwise Deletion)

  • 방법 설명: 결측치가 포함된 전체 행 또는 열을 제거한다.
  • 장점: 가장 간단하고 쉽게 적용할 수 있다.
  • 단점: 유용한 데이터를 상실할 수 있고, 데이터가 편향될 위험이 있다.
df_clean = df.dropna()

평균/중앙값/최빈값 대체(Imputation)

  • 방법 설명: 결측치를 해당 열의 평균, 중앙값 또는 최빈값으로 대체한다.
  • 장점: 데이터 손실을 줄이고, 구현이 쉽다.
  • 단점: 데이터의 분산을 감소시킬 수 있고, 실제 분포를 왜곡할 수 있다.
df['age'].fillna(df['age'].mean(), inplace=True)

예측 모델을 사용한 대체(Model-Based Imputation)

  • 방법 설명: 다른 변수들을 사용하여 결측치를 가진 변수의 값을 예측하는 모델(예: 선형 회귀, 결정 트리 등)을 만들어 결측치를 대체한다.
  • 장점: 데이터의 패턴을 유지하며 결측치를 보다 정확하게 추정할 수 있다.
  • 단점: 모델 구축이 복잡하고 시간이 많이 소요될 수 있다.

다중 대체(Multiple Imputation)

  • 방법 설명: 여러 차례에 걸쳐 결측치를 대체하여 여러 개의 완전한 데이터 세트를 생성한 후, 이 결과를 종합한다.
  • 장점: 결측치의 불확실성을 반영할 수 있고, 분석 결과의 정확도를 높일 수 있다.
  • 단점: 계산적으로 복잡하고 리소스가 많이 필요하다.

대표 라이브러리: statsmodels, fancyimpute, miceforest

K-최근접 이웃(K-Nearest Neighbors, KNN)

  • 방법 설명: 결측치가 있는 데이터 포인트와 가장 가까운 K개의 이웃을 찾아 그들의 값으로 결측치를 추정한다.
  • 장점: 데이터의 로컬 구조를 반영할 수 있다.
  • 단점: 차원의 저주(curse of dimensionality)의 영향을 받을 수 있고, 계산 비용이 높다.
from sklearn.impute import KNNImputer
knn_imputer = KNNImputer(n_neighbors=3)
df_imputed = knn_imputer.fit_transform(df)

어떤 방법을 선택해야 할까?

상황추천 처리 방법
결측치가 소수제거 (Listwise)
정규분포 가정이 가능한 변수평균 또는 Z-score 기반 대체
이상치 포함로버스트 중앙값/사분위 기반 대체
모델 정확도가 중요한 경우모델 기반 or 다중 대체
거리 기반 알고리즘 사용반드시 정규화 후 처리 (KNN 등)

결측치는 “어떻게 처리하느냐”가 분석 성패를 좌우한다

결측치 처리 방법은 데이터의 특성, 결측치의 양과 패턴, 분석의 목적에 따라 선택되어야 한다. 각 방법은 고유의 장단점을 가지므로, 상황에 맞게 적절한 방법을 선택하는 것이 중요하며, 데이터의 품질과 분석 결과의 신뢰성을 보장하기 위해, 결측치 처리는 매우 신중하게 진행되어야 한다.


🔗 함께 보면 좋은 관련 시리즈

Leave a Reply

Your email address will not be published. Required fields are marked *