오답·판단법
간호 AI 연구의 방법에 “빈칸을 평균으로 채운 뒤 학습용·시험용 자료로 나누었다”라고 적혀 있어요. 모델이 학습용 자료만 봤다면 문제가 없을까요? 빈칸을 채울 평균을 구할 때도 자료의 정보가 들어간다는 점을 살펴봐야 해요.
확인할 문장: 대치값을 구할 때, 아직 평가에만 써야 할 시험용 자료까지 포함했는가?
평균 하나에도 자료의 정보가 들어가요
아래 숫자는 저자가 만든 가상 예시로, 환자 자료나 실제 연구 결과가 아니에요. 한 변수에서 학습용 관측값은 2와4, 나머지 한 값은 결측이고 시험용 관측값은100이라고 가정해요. 평균 대치를 예로 들지만 이것이 최선의 결측 처리법이라고 가정하지는 않아요.
| 계산에 쓴 자료 | 학습용 빈칸의 대치값 |
|---|---|
| 학습용의 관측값2·4만 | (2+4)÷2=3 |
| 시험용100까지 포함 | (2+4+100)÷3≈35.3 |
두 번째 계산의35.3은 시험용100을 바꾸면 달라져요. 모델을 학습하기도 전에 시험자료가 학습용 빈칸에 영향을 준 거예요. 평균을 잘못 더한 계산 오류가 아니라, 나중에 평가할 자료의 정보가 준비 과정에 들어온 자료누수예요. 이 예시에서 모델을 실제로 실행하거나 성능 증가를 계산한 것은 아니에요.
먼저 나누고, 학습한 변환을 적용해요
- 먼저 학습용·시험용 자료를 나누어요.
- 대치값은 학습용 자료에서만 구해요. 이렇게 변환의 값을 학습하는 단계를 fit이라고 불러요.
- 학습용에서 구한 같은 규칙을 양쪽 자료에 적용해요. 시험용에 빈칸이 있어도 시험용만의 평균을 새로 학습하지는 않아요.
scikit-learn 공식 문서는 전처리 전에 자료를 나누고 학습자료에서만 fit한 뒤 시험자료에 학습한 변환을 적용하는 순서를 구별해요. SimpleImputer에도 누수 위험이 있다고 설명해요. Google의 교육 자료는 학습·검증·시험 자료의 역할과 시험 결과를 모델 선택에 되먹이는 문제를 다뤄요. Google은 이 평균 대치 계산을 직접 제시한 것은 아니에요.
이 순서만으로 해결되지 않는 질문도 있어요
평균 대치가 결측 원인과 연구 질문에 적절한지는 따로 검토해야 해요. 미검출을 단순 결측으로 바꾸라는 규칙도 아니에요. 한 자료집합을 학습용과 시험용으로 나누는 일은 새 기관에서 독립 자료를 수집하는 외부 검증과도 달라요. 누수를 막았다고 곧바로 임상적으로 안전한 모델이 되는 것은 아니에요.
여기서 ‘시험용’은 국가시험 문제집이 아니라 모델을 평가하는 test set이에요. 간호연구 방법에서 전처리값을 구한 자료의 범위를 찾아보는 연습이에요. 민감한 환자 자료를 AI 서비스에 올리거나 연구 분석을 임의로 바꾸라는 안내는 아니에요.
참고 자료 · 확인일 2026.10.05: scikit-learn · Common pitfalls and recommended practices · scikit-learn · SimpleImputer · Google · Datasets: Dividing the original dataset