결측치 처리 - MICE 다중 대치법과 KNN 대치 보간
핵심 인사이트 (3줄 요약)
- 본질: 결측치는 단순한 빈칸이 아니라, 데이터가 왜 비었는지부터 판단해야 하는 품질 문제다.
- 가치: MICE (Multivariate Imputation by Chained Equations)와 kNN (k-Nearest Neighbors)은 dropna보다 표본 손실을 줄이지만, 잘못 쓰면 편향을 더 키운다.
- 판단 포인트: MCAR (Missing Completely At Random), MAR (Missing At Random), MNAR (Missing Not At Random)를 구분하고, 대치는 항상 train-only 기준으로 적용해야 한다.
Ⅰ. 개요 및 필요성
결측치는 설문 누락, 센서 오류, 입력 실수, 수집 중단처럼 현실에서 매우 자주 생긴다. 모델은 이 빈칸을 그대로 받으면 오류를 내거나, 억지로 숫자를 넣더라도 잘못된 패턴을 학습할 수 있다. 그래서 결측치 처리는 전처리의 첫 관문이다.
dropna()로 지우면 간단하지만, 표본 수가 줄어들고 특정 집단이 과소대표될 수 있다. 반대로 무작정 평균값만 넣으면 분산이 눌려서 데이터 구조가 왜곡된다. 결측치 처리는 "없애기"와 "복원하기" 사이의 균형 문제다.
📢 섹션 요약 비유: 결측치는 찢어진 사진의 구멍이다. 그냥 잘라버리면 그림이 작아지고, 아무렇게나 칠하면 원본이 왜곡된다.
Ⅱ. 아키텍처 및 핵심 원리
결측 처리의 기본 흐름은 진단 → 방식 선택 → 학습 데이터에만 적합 → 검증 데이터에는 변환만 적용 → 품질 재확인이다. 특히 KNN은 거리 기반이므로 스케일 정규화가 선행되어야 하고, MICE는 변수 간 관계를 이용하므로 다변량 구조를 유지하는 데 유리하다.
| 방식 | 장점 | 단점 | 적합한 상황 |
|---|---|---|---|
| dropna | 구현이 매우 단순 | 표본 손실, 편향 위험 | 결측이 매우 적고 무작위일 때 |
| 평균/중앙값 대치 | 빠르고 재현성 높음 | 분산 축소, 관계 손실 | 단변량 기준선 |
| kNN 대치 | 국소 유사성 반영 | 계산 비용, 거리 민감 | 비슷한 행이 의미 있을 때 |
| MICE | 변수 간 관계 반영 | 반복 계산, 검증 복잡 | 상관 구조가 있는 다변량 데이터 |
결측 패턴 진단
│
├─ MCAR / MAR / MNAR 확인
│
├─ dropna / 단순대치 / kNN / MICE 선택
│
├─ train set에만 fit
│
└─ valid/test에는 transform만 적용
kNN은 특성이 비슷한 샘플들의 값을 참고해 빈칸을 메우고, MICE는 각 변수를 하나씩 종속변수로 두고 다른 변수들로 반복 예측한다. MICE는 하나의 추정치만 고정하지 않아서 불확실성을 덜 왜곡할 수 있다.
📢 섹션 요약 비유: 이웃집에서 레시피를 참고해 빈 양념을 채우거나, 전체 요리 재료의 균형을 다시 맞추는 과정과 같다.
Ⅲ. 비교 및 연결
dropna()는 빠르지만 정보 손실이 크고, 단순 대치는 간단하지만 관계를 덜 반영한다. kNN은 지역 유사성을 살리지만 차원의 저주와 이상치에 민감하고, MICE는 관계를 잘 살리지만 계산과 검증이 더 어렵다.
MCAR이면 dropna나 단순대치가 충분할 수 있지만, MAR/MNAR가 의심되면 모델 기반 대치가 더 안전하다. 결측치 보간은 "빈칸 메우기"가 아니라 "왜 비었는지 설명 가능한가"가 핵심이다. 또한 결측 여부 자체를 feature로 추가하면, 정보 손실을 일부 보완할 수 있다.
📢 섹션 요약 비유: 구멍 난 옷을 꿰매는 방법도 다르다. 작은 구멍은 간단히 막을 수 있지만, 천의 무늬를 살리려면 주변 모양까지 같이 봐야 한다.
Ⅳ. 실무 적용 및 기술사 판단
실무에서는 먼저 결측률과 패턴을 보고, 다음으로 모델 목적을 구분한다. 탐색 단계에서는 dropna/단순대치로 빠르게 기준선을 만들고, 본 학습에서는 MICE나 kNN을 검토한다.
- 채택: 결측이 중간 정도이고 변수 간 상관이 뚜렷할 때
- 회피: 거리 의미가 없는 범주형 위주 데이터에 kNN을 남용할 때
- 체크리스트
- 대치가 검증 데이터 정보 누출 없이 적용됐는가?
- 결측률이 높아 원본 의미가 사라지지 않았는가?
- 대치 후 분포가 비현실적으로 평평해지지 않았는가?
- 결측 indicator를 추가해 설명력을 보완했는가?
MICE는 여러 번 대치한 뒤 결과를 합치면 추정 불확실성을 반영할 수 있고, kNN은 이웃 수(k)를 조정해 너무 국소적이거나 너무 평평해지는 문제를 완화할 수 있다.
📢 섹션 요약 비유: 빈칸을 메우는 것도 연필로 대충 칠하는 게 아니라, 종이의 무늬와 주변 색을 같이 보는 작업이다.
Ⅴ. 기대효과 및 결론
적절한 결측치 처리는 표본 손실을 줄이고, 모델 입력의 일관성을 높이며, 학습 편향을 완화한다. 하지만 어떤 대치법도 "진짜 값"을 완벽히 복원하지는 못한다. 그래서 이 주제는 "없는 값을 어떻게 가장 덜 망가뜨려 다룰 것인가"로 기억하는 것이 맞다.
📢 섹션 요약 비유: 결측치 처리는 퍼즐의 빠진 조각을 완성도 높게 대체하는 작업이지, 원본을 100% 되살리는 마법은 아니다.
📌 관련 개념 맵
| 개념 | 연결 포인트 |
|---|---|
| MCAR (Missing Completely At Random) | 무작위 결측, 단순 대치 검토 가능 |
| MAR (Missing At Random) | 다른 변수와 연관된 결측, 모델 기반 대치 유리 |
| MNAR (Missing Not At Random) | 결측 자체가 의미를 가짐, 가장 어려움 |
| kNN (k-Nearest Neighbors) | 유사 샘플 기반 대치 |
| MICE (Multivariate Imputation by Chained Equations) | 반복 예측 기반 다중 대치 |
📈 관련 키워드 및 발전 흐름도
결측 탐지
│
▼
결측 원인 분류(MCAR/MAR/MNAR)
│
▼
dropna / 단순대치 / kNN / MICE 선택
│
▼
train-only 대치와 검증
│
▼
편향 점검과 분포 확인
👶 어린이를 위한 3줄 비유 설명
- 퍼즐 조각이 몇 개 없으면 그림이 비어 보이죠.
- 그냥 잘라 버리면 그림은 작아지고, 아무 색이나 칠하면 이상해져요.
- 그래서 주변 모양을 보고 가장 자연스럽게 채우는 방법을 찾는 거예요.